Component for use as a portable computing device and pointing device

ABSTRACT

A core component is disclosed which includes a processing module and a touch screen. The core component may operate by itself in a first mode to perform functions similar to that of a conventional personal digital assistant (PDA). In particular, the touch screen may both provide visual output and receive input from a user&#39;s finger when the core component operates in the first mode. When the core component is connected to another component including a display screen, the core component may operate in a second mode in which input received through the touch screen is provided to the other component. For example, the movement of a user&#39;s finger may control the position of a cursor displayed on a screen of the other component so that the core component exhibits the behavior of a trackpad when operating in the second mode.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is related to:

U.S. patent application Ser. No. 10/173,734, filed on Jun. 18, 2002,entitled “Modular Computing System,” which is hereby incorporated byreference; and

a commonly-owned and concurrently filed patent application entitled“Component for Use as a Portable Computing Device and Pointing Device ina Modular Computing System.”

BACKGROUND

1. Field of the Invention

The present invention relates generally to computing systems and, inparticular, to modular computing systems whose components may beinterconnected in various configurations to perform different functions.

2. Related Art

There is an increasing need for computer systems that are powerful,mobile, and inexpensive. In conventional computer systems, however,there is typically a tradeoff between computing power and mobility, andimplementing both increased power and increased mobility within a singlesystem typically results in increased cost. As a result of thistradeoff, most users use a relatively large and immobile computersystem, such as a conventional desktop computer system, for applicationsrequiring maximum computing power, and one or more mobile computingsystems (such as a cellular telephone and/or a personal digitalassistant) for applications where mobility is required. Use of such amultiplicity of computing systems can result in a variety of problems.For example, it can be costly to purchase and maintain several computingdevices for performing different functions. It can also be burdensome totravel with several mobile computing devices due to their combined sizeand weight. The need to store the same or similar data (such as anaddress book) in several mobile computing devices often requires theuser to manually enter such data into each computing device, increasingthe amount of time spent by the user performing data entry andincreasing the likelihood of inconsistent data across computing devices.It can also be difficult to learn and remember how to use the multipleuser interfaces provided by different mobile computing devices.

The above-referenced patent application entitled “Modular ComputingSystem” discloses techniques for avoiding at least some of theseproblems by providing a computing system in which components may beinterconnected in various configurations to perform different functions.The components of such a system may be reconfigured to attain the sameform factors as and perform the same functions as a variety ofconventional computing devices, such as a laptop computer, a personaldigital assistant (PDA), and a tablet computer. Such a system mayperform the same functions and provide the same benefits as conventionalcomputing devices more efficiently in terms of cost and size, andwithout requiring the cumbersome redundant data entry and inconsistentuser interfaces described above.

Such a modular computing system presents new opportunities andchallenges for re-use of existing system components to perform differentfunctions in different configurations in order to increase theflexibility and power of the system overall. Enabling existingcomponents to perform new functions in different configurations of thesystem furthers the goal of providing a computing system that ispowerful, flexible, portable, and inexpensive.

What is needed, therefore, are improved modular computing systems inwhich components may be interconnected in various configurations toperform different functions.

SUMMARY

A core component is disclosed which includes a processing module and atouch screen. The core component may operate by itself in a first modeto perform functions similar to that of a conventional personal digitalassistant (PDA). In particular, the touch screen may both provide visualoutput and receive input from a user's finger when the core componentoperates in the first mode. When the core component is connected toanother component including a display screen, the core component mayoperate in a second mode in which input received through the touchscreen is provided to the other component. For example, the movement ofa user's finger may control the position of a cursor displayed on ascreen of the other component so that the core component exhibits thebehavior of a trackpad when operating in the second mode.

Touch screen output (display) may be disabled when the core componentoperates in the second mode, so that the touch screen operates solely asan input device. The core component may automatically detect whether itis connected to another component having a display screen andautomatically configure itself to operate in the first mode when it isnot connected to another component, and to operate in the second modewhen it is connected to another component having a display screen.

For example, in one aspect of the present invention, a system isprovided which includes: a core device including a core computerprocessor, a core memory, a core storage device, a touch screen, andmeans for receiving input from and providing output through the touchscreen in a first mode of operation of the core device; a secondarydisplay device; means for coupling the core device to the secondarydisplay device; and means for providing input received from the touchscreen to the secondary display device in a second mode of operation ofthe core device. The core device may, for example, operate in the firstmode of operation when the core device is not coupled to the secondarydisplay device. The core device may, for example, operate in the secondmode of operation when the core device is not coupled to the secondarydisplay device.

In another aspect of the present invention, a method is provided for usein a system including a core device including a core computer processor,a core memory, a core storage device, and a touch screen. The methodincludes steps of: (A) receiving input from and providing output throughthe touch screen in a first mode of operation; (B) coupling the coredevice to a secondary display device; and (C) providing input receivedfrom the touch screen to the secondary display device in a second modeof operation of the core device. The method may further include stepsof: (D) detecting that the core device has been coupled to the secondarydisplay device; and (E) causing the core device to enter the second modeof operation in response to the detection performed in step (D).

In another aspect of the present invention, a core device is providedwhich includes: a core computer processor; a core memory; a core storagedevice; a touch screen comprising touch screen input means and touchscreen output means; means for receiving input from and providing outputthrough the touch screen in a first mode of operation of the coredevice; and means for providing input received from the touch screen toa secondary display device in a second mode of operation of the coredevice. The means for providing input may, for example, include meansfor providing input received from the touch screen to the secondarydisplay device only when the core device is coupled to the secondarydisplay device. The means for receiving input may, for example, includemeans for providing output through the touch screen only when the coredevice is not coupled to the secondary display device.

In yet another aspect of the present invention, a method is provided foruse in conjunction with a core device. The core device includes a corecomputer processor, a core memory, a core storage device, and a touchscreen comprising touch screen input means and touch screen outputmeans. The method includes steps of: (A) receiving input from andproviding output through the touch screen in a first mode of operation;and (B) providing input received from the touch screen to a secondarydisplay device in a second mode of operation of the core device. Thestep (B) may include steps of: (1) determining whether the core deviceis coupled to the secondary display device; and providing input receivedfrom the touch screen to the secondary display device only when the coredevice is determined to be coupled to the secondary display device. Thestep (A) may include steps of: (A)(1) determining whether the coredevice is coupled to the secondary display device; and (A)(2) providingoutput through the touch screen only when the core device is determinednot to be coupled to the secondary display device.

Other features and advantages of various aspects and embodiments of thepresent invention will become apparent from the following descriptionand from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a block diagram of the functional modules included in aconventional desktop computer;

FIG. 1B is a block diagram of the physical modules contained in aconventional desktop computer;

FIG. 2A is a block diagram of a set of components according to oneembodiment of the present invention;

FIG. 2B is a block diagram of a set of components according to anotherembodiment of the present invention;

FIGS. 3A–3E are block diagrams of configurations of the component set ofFIG. 2A according to various embodiments of the present invention;

FIG. 4 is a block diagram of a set of components that may beinterconnected to form various computing systems according to oneembodiment of the present invention;

FIGS. 5A–5D are block diagrams of functional modules included incomponents according to one embodiment of the present invention;

FIG. 6 is a flow chart of a process that is performed when a newcomponent is added to a component set according to one embodiment of thepresent invention;

FIG. 7A is a perspective view of a plurality of componentsinterconnected by connectors according to one embodiment of the presentinvention;

FIG. 7B is a schematic view of a component having male and femaleconnectors according to one embodiment of the present invention;

FIG. 7C is a schematic view of two interconnected components accordingto one embodiment of the present invention;

FIG. 8A is a perspective view of a core component having a touch screenand operating in a first mode in which the touch screen both receivesinput and displays output according to one embodiment of the presentinvention;

FIG. 8B is a perspective view of two interconnected components,including the core component of FIG. 8A, in which the core componentoperates in a second mode in which the touch screen performs thefunctions of a trackpad or stylus-based digitizer, according to oneembodiment of the present invention; and

FIG. 9 is a flow chart of a method that is performed by a core componentto select and operate in a first mode of operation according to oneembodiment of the present invention.

DETAILED DESCRIPTION

Most conventional computing systems are composed of subsystems, alsoreferred to herein as “functional modules” or simply as “modules.” Forexample, a conventional computing system may include one or more of eachof the following subsystems: (1) an information processing subsystem(which may include, for example, a central processing unit (CPU)), (2) apower input and distribution subsystem (which may include, for example,a power supply and power bus), (3) a user input subsystem (which mayinclude, for example, a conventional mouse, keyboard, and/or trackpad),(4) a user output subsystem (which may include, for example, aconventional monitor and/or printer), (5) a mass media storage andaccess subsystem (which may include, for example, a conventional harddisk drive), and (6) a network or inter-device communication subsystem(which may include, for example, a conventional network interface card(NIC) or a serial or parallel cable).

The term “computer” is used herein to refer to a system that includes aprocessing module, a power module, a media storage module, a user inputmodule, and a user output module. A computer, according to thisdefinition, differs from a conventional “appliance” in that an appliancetypically lacks some or all of the processing module and/or mediastorage module of a computer. An appliance therefore typically reliesheavily on a connection to a network system or removable media toprovide the missing functionality of the processing and/or media storagemodules. As used herein, the term “computing system” refers both tocomputers and to appliances.

Referring to FIG. 1A, one well-known implementation of a modularcomputing system is the conventional desktop computer 100 a, shown inblock diagram form. The desktop computer 100 a includes a processingmodule 102, a networking module 104, an input module 106, an outputmodule 108, a storage module 110, and a power module 112. Typically, theentire processing module 102, the entire networking module 104, and mostor all of the media storage module are embodied in components containedwithin a single physical housing. Although such housings have variousform factors, some of which (such as the “tower” model) are designed torest on a floor rather than a desk, all such form factors fall withinthe desktop computer paradigm as described herein. For purposes ofexplanation, any such housing and the devices contained within it arereferred to herein as the “desktop component” of a desktop computer.

For example, referring to FIG. 1B, the physical components of a typicaldesktop computer 100 b are shown. The desktop computer 100 b includes adesktop component 122, a keyboard 126 a, a mouse 126 b, a monitor 128 a,and a printer 128 b. The processing module 102 of the desktop computer100 b is embodied in a central processing unit (CPU) and relatedcomponents within the desktop component 122. Similarly, the networkingmodule 104 of the desktop computer 100 b is embodied in a networkinterface card (NIC) and related components within the desktop component122, and the power module 112 of the desktop computer 100 b is embodiedin a power supply, transformer, and related components within thedesktop component 122. The input module 106 of the desktop computer 100b consists of a keyboard 126 a, a mouse 126 b, and related componentswithin the desktop component 122. The output module 108 of the desktopcomputer 100 b consists of a monitor 128 a, a printer 128 b, and relatedcomponents within the desktop component 122. The storage module 110 ofthe desktop computer 100 b consists of a hard disk drive (not shown)within the desktop component 122, an external optical storage device130, and related components within the desktop component 122. The“related components” described above typically include device driversand other hardware and software for communicating with and controllingthe keyboard 126 a, mouse 126 b, monitor 128 a, printer 128 b, andoptical storage device 130, which are typically referred to as“peripheral devices.”

Conventional desktop components typically communicate with peripheraldevices (such as the keyboard 126 a and the printer 128 b) via dataports, wireless streams, or physical connectors having variousbandwidths and form factors and employing various protocols. Suchperipheral devices are generally powered either independently by powermodules unique to each device, or draw power parasitically from thedesktop component 122.

A data stream between the desktop component 122 and a peripheral device(such as the keyboard 126 a or the printer 128 b) is typically requiredfor the peripheral device to perform its intended function. A connectionbetween the peripheral device and the desktop component 122 is requiredto provide such a data stream. As a result, conventional peripheraldevices typically cannot perform their intended function if they are notconnected to the desktop component 122. For example, the monitor 128 amust typically be connected to the desktop component 122 with a cable inorder to display images and other visual information. The monitor 128 astanding alone is not capable of displaying visual information becauseit requires a data stream from the desktop component 122 to provide itwith a description of the visual information to display.

Similarly, the desktop component 122 is also typically unable to performany useful function if it is not connected to appropriate input, output,and power modules. For example, the desktop component 122 would not beable to provide user input to application programs and would not be ableto provide user output from such application programs if the desktopcomponent 122 were not connected to appropriate input components (suchas the keyboard 126 a and mouse 126 b) and appropriate output components(such as the monitor 128 a).

The physical modularity of a conventional desktop computer (as depictedin FIG. 1B) is thus very closely related to its functional modularity(as depicted in FIG. 1A). The interconnection of several discretecomponents (e.g., the desktop component 122, the keyboard 126 a, and themonitor 128 a) is typically necessary to provide the minimal set offunctional modules for a functional computer system.

In portable computing systems, such as laptop computers, a single deviceoften encapsulates a set of components that embody user input modules(e.g., keyboard, trackpad, touchpad, buttons, levers, touchscreen,stylus, operating system, etc.), user output modules (e.g., monitor,speakers, LEDs, vibration, etc.), processing modules (e.g., CPU, memory,video processor, decoder), media storage modules (e.g., hard disk drive,flash memory, smart card, ROM), and power modules (e.g., batteries,transformers, super capacitors, solar cells, springs). Encapsulation ofinput, output, and power modules within a single device is a common wayin which portable computing systems address the need for portability. Inaddition to this encapsulation of multiple functional modules within asingle device, portable computing systems often also include peripheraldevices that provide the functionality of network modules (e.g.,modems), inter-device communication modules (e.g., port replicators,expansion cards), user input modules (e.g., mice, keyboards,microphones), user output modules (e.g., printers, external speakers),and power modules (e.g., external batteries and chargers).

Laptop computers, handheld computers, and personal digital assistants(PDAs) are examples of such portable computing systems. Devices such asMP3 players, calculators, and handheld voice recorders are also portablecomputers with processing, input, output, power, and media modulesspecifically scaled and tailored to these niche devices. Among portablecomputer systems are also specialized “media readers” such as digitalphones, pagers, digital cameras, tape players, CD players, wirelessemail devices, portable DVD-players, mini-disc players, and portablegame players, which read a stream of media to the user, either from awireless source or from a removable media source. These readers, likeappliances, may have some or all of their processing or media storagemodules abstracted over a network or removable device.

As described above, conventional computing systems typically present anundesirable tradeoff between computing power and mobility. Anotherproblem with conventional computing systems is that their structuretypically involves a “central” component (such as the desktop component122 in FIG. 1B) to which all other components must be connected in orderfor the system to operate. In such a computing system, components otherthan the desktop component 122 (such as the keyboard 126 a and theprinter 128 b) are considered to be “peripherals.” Typically, suchperipherals can only operate when they are connected to the desktopcomponent 122 and can only communicate with each other through thedesktop component 122. Such centralization of control and communicationcan lead to inefficient use of resources (such as processing cycles andmemory) and increase the overall physical size of the computer system.

Portability of computer systems has become increasingly necessary inrecent years. In response to this need, a wide variety of handhelddevices, such as personal digital assistants (PDAs), cellular telephone,MP3 players, CD players, and digital audio recorders, have proliferated.Typically, each such handheld device is dedicated to performing a singletask or a closely related set of tasks, such as playing music orfacilitating telephone communication.

Although such devices may individually be portable, the proliferation ofsuch devices has led to a variety of problems. For example, because eachhandheld device typically performs a narrow range of tasks, users whorequire a variety of mobile services often acquire a variety of handhelddevices, each of which provides a different mobile service. For example,a single user may own or use a cellular telephone, PDA, CD player,laptop computer, and digital voice recorder. As a result, it can be verycostly for a user to acquire all of the mobile devices necessary to meethis or her needs. Furthermore, it can be cumbersome to transportmultiple handheld devices due to their combined size and weight, therebydefeating the original goal of mobility.

Different mobile devices often provide the same or similar features,such as an electronic address book. Such redundancy is inefficient andincreases the total size and cost of designing, manufacturing, andpurchasing multiple mobile devices. Furthermore, it is necessary for theuser to learn how to use each mobile device, which can betime-consuming. Even when two different mobile devices provide the samefeature, such as an electronic address book, the user interface to sucha feature typically differs from device to device. Remembering how touse a large number of user interfaces can be difficult and frustrating,and can lead to the user making an error (such as a data entry error)when operating one of the user interfaces.

The same or similar data is often stored in and processed by multiplemobile devices owned by the same user. For example, a user's laptopcomputer, PDA, and cellular telephone may all store the same electronicaddress book. Such redundant data storage can represent an inefficientuse of resources and increase the total storage requirements and size ofthe devices owned by the user.

Some mobile devices are not capable of communicating with each other,leading to a variety of problems. For example, in cases where the samedata is stored on multiple mobile devices, the inability of the devicesto communicate with each other may make it necessary for the user tomanually enter the same data into each of the mobile devices. This canbe a time-consuming and error-prone process. Furthermore, the redundantdata stores may become out-of-sync as the user modifies each of themindependently (e.g., by adding an address to the address book stored ona PDA and deleting an address from the address book stored in a cellularphone). If the mobile devices are unable to communicate with each other,it may be extremely difficult for the user to keep all of the datastores synchronized. In some cases the user can synchronize the multipledata stores by manually initiating a synchronization process (such as byconnecting one of the mobile devices to the desktop component 122 andexecuting software on the desktop component 122 that synchronizes thedesktop component's data store with the mobile component's data store).Such synchronization, however, is time consuming and can still lead tocorruption and/or loss of data if not performed carefully.

Before describing various aspects and embodiments of the presentinvention, various terms will be defined.

As used herein, the term “functional module” refers to a set of hardwareand/or software in a computing system that performs a particularfunction. The terms “subsystem” and “module” are used synonymously with“functional module” herein. For example, a display module in aconventional desktop computer may include the computer's CPU, graphicscard, video memory, monitor, and portions of the operating system thatprocess display information. Examples of other modules includeprocessing modules, input modules, and power modules. A functionalmodule may be embodied in hardware, software, data and/or instructionstreams, and any combination thereof. A single physical device in acomputer system may be part of more than one functional module.

In some cases a particular functional module may present an interface toa user through a particular device. For example, a user may interactwith an input module using a keyboard, or an output module through adisplay monitor. It should be appreciated that the term “functionalmodule” as used herein refers not only to such user interface devices,but to any additional hardware and/or software within the computingsystem (such as buses and drivers) that are used to perform the functionof the functional module.

A single functional module may include one or more units of hardwareand/or software for performing the module's function. For example, asingle input module may include a keyboard or both a mouse and akeyboard for obtaining user input.

As used herein, a “class” of functional module refers to a set offunctional modules that perform the same function. For example,processing modules constitute a class of functional modules, as do inputmodules, display modules, storage modules, power modules, and networkmodules. Therefore, for example, two different processing modules are inthe same class of functional module, while a processing module and aninput module are not in the same class of functional module.

As used herein, the term “component” refers to a physical unit of acomputing system. As used herein, the term “physical module” issynonymous with “component.” A component may include hardware, software,or any combination thereof. A computing system is physically composed ofphysical modules and functionally composed of functional modules.Examples of components include CPUs, peripheral devices (such asmonitors, keyboards, and printers), application software programs, andoperating systems.

There may be any mapping between functional modules and physical modules(components) in a computing system. For example, a single functionalmodule may be implemented using a single component, multiple components,a part of a component, or any combination thereof. Similarly, acomponent may implement a single functional module, multiple functionalmodules, or a part of a functional module. If a physical system (such asa component or a set of components) performs the function of afunctional module, the physical system is said to “implement” or“embody” the functional module.

As used herein, the term “component set” refers to a set of componentsincluding at least one subset of components that may be interconnectedto form a computing system. It need not be possible to contemporaneouslyinterconnect all of the components in a component set to form acomputing system. For example, a component set may include two displaycomponents although it may not be possible to contemporaneously use bothdisplay components in conjunction with other components in the componentset. Examples of components sets are shown and described in more detailbelow with respect to FIGS. 2A–2B.

As used herein, the term “computer” refers to a system that includes aninformation processing module, a power module, a user input module, auser output module, and a storage module. These modules areinterconnected to form a unified system that is powered by the powermodule, receives user input using the user input module, processes theuser input (and other information) using the processing module, providesuser output using the user output module, and stores user input (andother information) using the storage module. Examples of computersinclude conventional desktop computers and laptop computers.

As used herein, the term “appliance” refers to a device that includes apower module, a user input module, and a user output module, but thatlacks components that provide some or all of the functionality of aconventional computer processing module and/or storage module. Anappliance therefore may rely at least in part on a connection to anetwork system or removable media to provide the missing functionalityof the processing and/or media storage modules. The modules in anappliance are interconnected to form a unified system that is powered bythe power module, receives user input using the user input module,processes the user input (and other information) using the (at leastpartially external) processing module, provides user output using theuser output module, and stores user input (and other information) usingthe (at least partially external) storage module. Examples of appliancesinclude personal digital assistants, cellular telephones, and web pads.

As used herein, the term “computing system” refers to both computers andappliances. A computing system includes an input module, an outputmodule, a power module, a processing module, and a storage module. Acomputing system may also include other modules, such as an interdevicecommunication module.

As used herein, the term “input module” refers to any functional module(subsystem) that provides input to a computing system. Input modules mayinclude devices such as keyboards, mice, styluses, trackballs, touchlocation devices such as trackpads (also referred to as “touchpads”) andtouch screens, microphones, scanners, cameras and video capture devices,wireless receivers, buttons, and switches. Input may, for example, beobtained by the input module as the result of actions performed by auser (such as typing on a keyboard). Input may, however, be obtainedwithout user activity. For example, a network interface card may receiveinput over a network from another computer performing automated actions,and a digital camera may be configured to periodically capture imagesand provide them as input to a computing system without furtherinteraction from the user.

As used herein, the term “output module” refers to any functional module(subsystem) that provides output to a user, to another module, or toanother computing device. Output modules may include, for example,devices such as display monitors, speakers, printers, projectors, andwireless transmitters.

As used herein, the term “processing module” refers to any functionalmodule (subsystem) that processes information. Processing modules mayinclude one or more kinds of processor in any combination, such as acentral processing unit (CPU), graphics processing unit, mathco-processing unit, or a digital signal processor.

As used herein, the term “storage module” refers to any functionalmodule (subsystem) that stores digital information. Storage modules mayinclude devices such as RAM, ROM, hard disk drives, floppy disk drives,optical drives (such as CD-ROM, CD-R, CD-RW, DVD-RAM, or DVD-ROMdrives), or tape drives.

As used herein, the term “interdevice communication module” refers toany functional module (subsystem) that enables a component tocommunicate with another component. Typically, each component that is tocommunicate with another component contains its own interdevicecommunication module. Interdevice communication modules may enablecommunication over any kind of connection, such as serial cables,parallel cables, USB cables, or wireless connections. Interdevicecommunication modules may include devices such as serial controllers,parallel controllers, and network interface cards (NICs).

It should be appreciated that the particular classes of functionalmodule described above are provided purely for purposes of example anddo not constitute limitations of the present invention. For example,although an “input module” is described above, a particular computingsystem may include multiple input modules, such as a user input module,an audio input module, and a video input module. Various other kinds ofmodules may also be used by components according to embodiments of thepresent invention.

As used herein, the term “configuration” refers to a unique subset ofcomponents in a component set that may be interconnected to form acomputing system. For example, assume for purposes of example that acomponent set includes a first component, a second component, and athird component. If the first component and the second component may beinterconnected to form a computing system, then the first and secondcomponents so interconnected constitute a configuration of the componentset. Similarly, if the first component, the second component, and thethird component may be interconnected to form a computing system, thenthe first, second, and third components so interconnected constitute aconfiguration of the component set. Furthermore, if the first componentmay operate on its own as a computing system, then the first componentalso constitutes a configuration of the component set.

Components are “interconnected” if they are coupled in any manner, suchas through physical, electrical, and/or wireless connections that enablethe components to communicate with each other and operate as a computingsystem.

The description herein may refer to “redundant functional modules”and/or to “redundancy” of functional modules. It should be appreciatedthat such terms need not refer to exact duplication of functionality orto exact duplication of structure used to implement functionality.Rather, any two functional modules that perform the same function (i.e.,of the same class) within a computing system constitute redundantfunctional modules. For example, two processing modules may constituteredundant functional modules, even if the two modules do not use thesame hardware (e.g., the same processors) or perform the same processingtasks. As long as they perform the function of a processing modulewithin the computing system, they are redundant processing modules. Thesame is true, for example, for input modules, display modules, andstorage modules.

In one aspect, the present invention features a component set includinga plurality of components that include a plurality of functionalmodules. At least one of the functional modules is implemented by atleast two different subsets of the component set. For example, two ofthe components may each provide an implementation of one of thefunctional modules (such as the processing module). As a result of thisredundant functional modularity, the components and subsets thereof maybe flexibly rearranged and interconnected into a variety of computingsystems without requiring the use of a particular component in every oneof the configurations to perform the function of a particular functionalmodule.

Assume, for example, that there are n subsets S₁–S_(n) of the componentset that may be interconnected to form computing systems. The members ofeach of the subsets S₁–S_(n) form a unique set of components that may beinterconnected to form a computing system. Using the terminology definedabove, each of the subsets S₁–S_(n) is a configuration of the componentset. In one aspect of the present invention, no component of thecomponent set is a member of all of the subsets S₁-S_(n). This differs,for example, from the conventional desktop computer 100 b, in which thedesktop component 122 is always a component of the desktop computer 100b, regardless of which peripheral devices are included in the desktopcomputer 100 b.

Referring to FIG. 2A, a more concrete example is provided of theredundant functional modularity that is provided according to one aspectof the present invention. A component set 200 includes a first component202 a, a second component 202 b, and a third component 202 c. Assume forpurposes of example that a computing system requires only a processingmodule, an input module, an output module, and a storage module. Thefirst component 202 a includes a first processing module 204 a, a firstinput module 206 a, a first output module 208 a, and a first storagemodule 210 a. The second component 202 b includes a second output module208 b. The third component 202 c includes a second processing module 204c, a second input module 206 c, and a second storage module 210 c.

It should be appreciated that the component set 200 includes redundantprocessing modules (the processing module 204 a of the first component202 a and the processing module 204 c of the third component 202 c),redundant input modules (the input module 206 a of the first component202 a and the input module 206 c of the third component 202 c), andredundant storage modules (the storage module 210 a of the firstcomponent 202 a and the storage module 210 c of the third component 202c). Advantages resulting from these redundant functional modules will bedescribed in more detail below.

Referring to FIG. 3A, in a first configuration 300 a of the componentset 200, the first component 202 a is connected to a component interface304 by first connector 302 a, and the second component 202 b isconnected to the component interface 304 by second connector 302 b. Thefirst component 202 a and the second component 202 b communicate witheach other via the component interface 304 and the connectors 302 a–b.

It should be appreciated that the component interface 304 and connectors302 a–b, shown in generalized form for ease of illustration, may beimplemented in any of a variety of ways. Particular examples oftechniques for implementing component interface 304 and connectors 302a–b are described in more detail below with respect to FIGS. 7A–7C.Although component interface 304 and connectors 302 a–b are shown asdistinct elements in FIGS. 3A–3D, they may be implemented using the samehardware and/or software.

The first configuration 300 a is a computing system that utilizes (forexample) the processing module 204 a of the first component 202 a, theinput module 206 a of the first component 202 a, the storage module 210a of the first component 202 a, and the output module 208 b of thesecond component 202 b. The computing system formed by the firstconfiguration 300 a therefore utilizes functional modules from both thefirst component 202 a and the second component 202 b.

Referring to FIG. 3B, in a second configuration 300 b of the componentset 200, the second component 202 b is connected to the componentinterface 304 by first connector 302 a, and the third component 202 c isconnected to the component interface 304 by second connector 302 b. Thesecond component 202 a and the third component 202 c communicate witheach other via the component interface 304 and the connectors 302 a–b.

The second configuration 300 b is a computing system that utilizes (forexample) the processing module 204 c of the third component 204 c, theinput module 206 c of the third component 202 c, the storage module 210c of the third component 202 c, and the output module 208 b of thesecond component 202 b. The computing system formed by the secondconfiguration 300 b therefore utilizes functional modules from both thesecond component 202 b and the third component 202 c.

Referring to FIG. 3C, in a third configuration 300 c of the componentset 200, the first component 202 a is connected to the componentinterface 304 by first connector 302 a, and the third component 202 c isconnected to the component interface 304 by second connector 302 b. Thefirst component 202 a and the third component 202 c communicate witheach other via the component interface 304 and the connectors 302 a–b.

The third configuration 300 c is a computing system that utilizes (forexample) the processing module 204 c of the third component 204 a, theinput module 206 c of the third component 202 c, the storage module 210c of the third component 202 c, and the output module 208 a of the firstcomponent 202 a. The computing system formed by the third configuration300 c therefore includes functional modules from both the firstcomponent 202 a and the third component 202 c.

It should be appreciated that none of the components 202 a–c in thecomponent set 200 is included in all three of the configurations 300 a–cshown in FIGS. 3A–3C, and that no one component is exclusively reliedupon to provide the processing module necessary to form a computingsystem. This differs from the conventional desktop computer 100 b (FIG.1B), in which the desktop component 122 is a required component in anyconfiguration because the desktop component's processing module isrequired to form a computing system. The lack of dependency on anyparticular component exhibited by the component set 200 shown in FIG. 3Aresults from the inclusion of redundant functional modules in thecomponent set 200. For example, the inclusion of a processing module inboth the first component 202 a and the third component 202 c allowseither the first component 202 a or the third component 202 c to providethe processing module necessary to form a complete computing system.

This redundancy of functional modules enables flexibility in configuringdifferent subsets of the component set 200 into different computingsystems, so long as each configuration includes all of the functionalmodules necessary to form a computing system. It should be appreciatedthat functional modules other than the processing module may beimplemented by multiple components of a component set. Various otherexamples of redundant functional modules will be described in moredetail below.

Furthermore, it should be appreciated that although the configurations300 a–c shown in FIGS. 3A–3C each includes exactly two components, aconfiguration may include any number of components. For example,referring to FIG. 3D, a fourth configuration 300 d is shown in which thefirst component 202 a, the second component 202 b, and the thirdcomponent 202 c are interconnected by the component interface 304 andconnectors 302 a–c to form a computing system. The fourth configuration300 d is a computing system that utilizes (for example), the processingmodule 204 a of the first component 202 a, the input module 206 a of thefirst component 202 a, the output module 208 b of the second component202 b, and the storage module 210 c of the third component 202 c.

Similarly, a configuration may consist of a single component. Forexample, referring to FIG. 3E, a fifth configuration 300 e of thecomponent set 200 is shown that consists of the first component 202 a.The fifth configuration 300 e is a computing system that utilizes theprocessing module 204 a, the input module 206 a, the output module 208a, and the storage module 210 a of the first component 202 a.

Another advantage of the redundant functional modularity described aboveis that the components in a component set may perform differentfunctions in different configurations of the component set. For example,consider again the component set 200 shown in FIG. 3A. As describedabove, the second configuration 300 b (FIG. 3B) utilizes the processingmodule 204 c, the input module 206 c, and the storage module 210 c ofthe third component 202 c, while the second component 202 b provides theoutput module 208 b. Therefore, in the second configuration 300 b, thethird component performs functions similar to those performed by aconventional desktop computer and the second component 202 b performsfunctions similar to those performed by a conventional monitor. Incontrast, in the third configuration 300 c (FIG. 3C), the thirdcomponent 202 c provides (for example) only its storage module 210 c,while the first component 202 a provides its processing module 204 a,input module 206 a, and output module 208 a. Therefore, in the thirdconfiguration 300 c, the third component 202 c performs functionssimilar to those performed by a conventional hard disk drive.

Additional examples in which components perform different functions indifferent configurations are provided below. The ability of componentsin various embodiments of the present invention to perform differentfunctions in different configurations is advantageous because it enablescomponents to automatically adapt to different configurations and toperform the functions for which they are most well-suited in aparticular configuration. For example, if the processing module 204 a ofthe first component 202 a is more powerful than the processing module204 c of the third component 202 c, the more powerful processing module204 a of the first component 202 a may be used when the first component202 a and the third component 202 c are interconnected in aconfiguration (such as the third configuration 300 c shown in FIG. 3C).The less powerful processing module 204 c of the third component 202 cmay be used, however, when the third component 202 c is included in aconfiguration with other components having less powerful processingmodules or no processing modules (such as the second configuration 300 bshown in FIG. 3B).

A further advantage of the redundant functional modularity describedabove is that one or more components in a component set may each be acomplete computing system. For example, referring to FIG. 2B, acomponent set 220 includes a first component 222 a, a second component222 b, and a third component 222 c. The first component 222 a includes afirst processing module 224 a, a first input module 226 a, a firstoutput module 228 a, and a first storage module 230 a. The secondcomponent 202 b includes a second output module 208 b, a secondprocessing module 224 b, a second input module 226 b, and a secondstorage module 230 b. The third component 202 c includes a thirdprocessing module 204 c, a third input module 206 c, and a third storagemodule 210 c.

A first configuration of the component set 220 includes the firstcomponent 222 a and the second component 222 b. The first configurationincludes the processing module 224 a of the first component 222 a, theinput module 226 a of the first component, the storage module 230 a ofthe first component, and the output module 228 b of the secondcomponent. In the first configuration, therefore, the second component222 b provides only the output module 228 b and therefore performsfunctions similar to those provided by a conventional monitor.

Recall that for purposes of the present discussion it is assumed that acomputing system requires only a processing module, input module, outputmodule, and storage module. For example, it is assumed for purposes ofsimplicity in the present discussion that a computing system does notrequire a power module. When the second component 222 b is disconnectedfrom the first component 222 a, therefore, the second component 222 bmay operate independently as a computing system, because the secondcomponent 222 b includes all of the necessary modules (i.e., the outputmodule 228 b, the processing module 224 b, the input module 226 b, andthe storage module 230 b). Therefore, although the second component 222b in some ways behaves similarly to a conventional monitor whenconnected to the first component 222 a, the second component 222 b mayoperate as a standalone device when disconnected from the firstcomponent 222 a, unlike a conventional monitor. This ability of thesecond component 222 b (and more generally, of any component thatincludes all of the functional modules of a computing system) tocontinue to operate on its own advantageously increases the number ofconfigurations that may be formed from the component set 220 andincreases the usefulness of components in the component set 220 asmobile computing devices. Components in a component set need not becomedormant peripheral devices when they are disconnected from othercomponents in the component set. In fact, since there is no singlecentralized component to which other components must connect to form acomputing system, no component in the component set is “peripheral” toother components. This elimination of a centralized, hierarchicalstructure to the component set advantageously provides additionalflexibility and functionality to the configurations that may be formedfrom the components in the component set.

It is not a requirement of the present invention, however, that everycomponent in a component set include all of the functional modules of acomputing system. Rather, one or more components in a component set mayinclude fewer than all functional modules of a computing system andtherefore not be capable of operating as a standalone computing system.

In the examples provided above, each configuration is said to utilizeexactly one functional module of each class of functional module (e.g.,processing, input, output, and storage). It should be appreciated thatthis is not a limitation of the present invention. Rather, multiplefunctional modules of the same class may be utilized within a singleconfiguration in a variety of ways. For example, in one embodiment ofthe present invention, in a particular configuration including twofunctional modules of the same class, such as two storage modules, onecomponent in the configuration may use one of the storage modules forstorage, while another component in the configuration may use the otherstorage module for storage.

In another embodiment, the inclusion of two functional modules of thesame class in a single configuration may also enable one of the twofunctional modules to be used as a backup in the event that the otherfunctional module fails or becomes unavailable. For example, considerthe configuration 300 c (FIG. 3C). Assume that in normal operation theprocessing module 204 a of the first component 202 a performs theprocessing function of the configuration 300 c. For example, the firstcomponent's processing module 204 a may be more powerful than the thirdcomponent's processing module 204 c and therefore be more desirable foruse. In the event, however, that the processing module 204 a fails, theconfiguration 300 c may switch to using the processing module 204 c ofthe third component 202 c to perform processing functions.

In a further embodiment, load balancing may be performed among multiplefunctional modules of the same class to more efficiently perform aparticular function. For example, load balancing may be performed acrosstwo or more processing modules (such as the processing module 204 a andthe processing module 204 c in the configuration 300 c shown in FIG. 3C)to distribute processing tasks between the processing modules using anyof a variety of well-known load balancing techniques.

Two functional modules of the same class may be used contemporaneouslyto perform the function more efficiently. For example, two or moreprocessing modules may be operated in parallel to perform processingtasks more efficiently. Two or more output modules including displaymonitors may be operated contemporaneously to provide a larger virtualdisplay area or to contemporaneously provide two display areas. Twoinput modules including different input devices (such as a mouse and akeyboard) may be operated simultaneously to provide the user withmultiple input modes. Multiple storage modules (such as those includinga hard disk drive and a floppy disk drive) may be provided to enable theuser to access multiple storage media. It should be appreciated that thepresent invention is not limited to these particular examples.

In another embodiment, the present invention features a component setincluding a plurality of components that include a plurality offunctional modules. In a first configuration of the component set, allof the components are interconnected to form a first computing system. Asecond configuration of the component set includes a first subset of thecomponent set that includes fewer than all of the components in thecomponent set. The second configuration forms a second computing system.A third configuration of the component set includes a second subset ofthe component set that includes fewer than all of the components in thecomponent set. The first subset and the second subset are disjoint,i.e., none of the components in the component set is included in boththe first subset and the second subset.

As a result, it is possible to interconnect all of the components in thecomponent set to form a computing system, and also to form at least twocomputing systems from disjoint subsets of the component set. Forexample, referring again to the component set 200 (FIG. 2A), all of thecomponents 202 a–c may be interconnected to form a computing system(FIG. 3D), and it is also possible to form computing systems from atleast two disjoint subsets of the component set 200 (as shown in FIGS.3B and 3E). This differs from, for example, the conventional desktopcomputer 100 b (FIG. 1B), in which the desktop computer 122 is acomponent of all subsets of the desktop computer 100 b that constitutecomputing systems. Various examples of this aspect of the presentinvention will be provided in more detail below.

The ability to form computing systems from disjoint subsets of acomponent set advantageously enables the components in the component setto contemporaneously perform multiple functions, possibly for multipleusers and in multiple locations. Furthermore, each subset of thecomponent set that forms a computing system may be physically smallerthan the entire component set, thereby increasing the mobility of thecomputing system formed by the subset of components.

In another aspect, the present invention features a unique physicalmodularity. Functional modules are distributed among physical modules(components) so that physical modules may be rearranged into differentconfigurations. Distributing functional modules among physical modulesrather than, for example, providing all functional modules within asingle physical module allows flexible reconfiguration of componentsinto different computing systems. Such a variety of computing systemsderived from a single set of components may be desirable to provide avariety of modes of user interaction. For example, one configuration maybe small and well-suited to mobile use, while another configuration mayinclude a large display and therefore be well-suited to desktoppublishing or for users with visual impairments.

The ability to derive a variety of computing systems from a single setof interoperable components may decrease the total size, cost, and/ornumber of components that a particular user or enterprise needs topurchase and maintain in order to obtain the full range of computingsystems.

Furthermore, redundancy of data may be reduced or eliminated by theability of components to easily access data stored in other components.For example, a component having a mass storage module (e.g., a hard diskdrive) may be used to store user data such as an address book andcalendar. This mass storage module may be accessed by other componentsin various configurations, thereby eliminating the need to generate andstore multiple instances of such data. The component having the massstorage module may be disconnected from the other modules and usedseparately as a portable computing device that has access to all of theinformation stored by the mass storage module.

Various configurations of such a re-configurable set of components maypresent the user with a smaller number of user interfaces than aconventional set of mobile computing devices. For example, one componentmay include a touch screen that can be used to obtain user input in avariety of different configurations. The touch screen (and associatedsoftware) may therefore be used to provide a consistent user interfaceto the user across a wide variety of applications. This differs fromconventional systems, in which the user must typically use one userinterface to interact, for example, with a cellular telephone, anotheruser interface to interact with a PDA, etc.

Having described general features and advantages of various embodimentsof the present invention, some particular embodiments of the presentinvention will now be described in more detail.

Referring to FIG. 4, in one embodiment of the present invention acomponent set 400 is provided that includes a core component 402 a, aninput component 402 b, an output component 402 c, and a storagecomponent 402 d. As described in more detail below, the components 402a–d may be interconnected in various configurations to form a variety ofcomputing systems. It should be appreciated that the particularcomponents 402 a–d shown in FIG. 4 are shown and described herein merelyfor purposes of example, and do not constitute a limitation of thepresent invention. In particular, the particular sub-components of eachof the components 402 a–d shown in FIGS. 5A–5D are provided merely forpurposes of example and do not constitute limitations of the presentinvention. Rather, the components 402 a–d may include a greater orlesser number of components than shown in FIGS. 5A–5D.

As described in more detail below, all four of the components 402 a–dmay be interconnected to form a computing system that performs functionssimilar to those performed by a conventional laptop computer. Thecomponents 402 a–d may also be physically disengaged and reconfigured toperform functions similar to those conventionally performed by otherdevices. For example, the output component 402 c (which may, forexample, include a display monitor) and the input component 402 b (whichmay, for example, include a mouse and/or keyboard) may be interconnectedto form an Internet appliance that may be used to browse the Web and/orsend and receive email. The storage component 402 d (which may, forexample, include a hard disk drive and/or a DVD drive) and the outputcomponent 402 c may be interconnected to form a home theater system. Thestorage component 402 d and the core component 402 a may beinterconnected to form a portable media player, such as a portable DVDplayer. Subsets of the four components 402 a–d may be interconnected invarious other ways to perform other functions as described in moredetail below. In some configurations, two or more subsets of the fourcomponents 402 a–d may operate independently as separate usefulcomputing systems.

It should be appreciated that the names assigned to the components 402a–d, such as “core component” and “output component” are provided purelyfor convenience to indicate functions that may be performed by thecomponents in certain embodiments of the present invention, and do notconstitute limitations of the present invention. Rather, each of thecomponents 402 a–d may perform various functions in differentconfigurations of the component set 400 in various embodiments of thepresent invention. For example, the output component 402 c may performinput functions in certain configurations and the input component 402 bmay perform output functions in certain configurations.

Referring to FIG. 5A, one embodiment of the core component 402 a isshown in more detail. The core component 402 a includes an output module406, a processing module 412, an input module 418, a storage module 426,a power module 430, and an interdevice communication module 436. Theinclusion of these modules in the core component 402 a enables the corecomponent 402 a to operate on its own to perform functions similar tothose performed by conventional laptop computers and/or PDAs.

Various embodiments of the functional modules implemented by the corecomponent 402 a are now described. In one embodiment, the processingmodule 412 includes a low-power microprocessor 414 such as the Crusoe0.13 micron TM5800 processor from Transmeta Corporation of Santa Clara,Calif., and RAM 416 on par with those in laptops in terms of capacityand speed. A consumer-oriented operating system is stored in RAM 416and/or hard disk 428 and processed by microprocessor 414. The processingmodule 412 may be significantly smaller than those of conventionallaptop computers as a result of (1) combining multiple ICs into acommercially available multi-chip module package, (2) utilizingincremental advances in component packaging technologies, and (3)eliminating redundant and otherwise unneeded components.

The input module 418 includes a touch screen 420, buttons 422, and amicrophone 424. As should be appreciated from this example, physicaldevices within the core component 402 a may contribute to more than onefunctional module. For example, in the embodiments of the processingmodule 412 and the input module 418 just described, the RAM 416contributes both to the processing module 412 and to the input module418. Multi-module devices such as the RAM 416 are depicted in thedrawings as being part of only one functional module purely for ease ofillustration.

One example of the touch screen 420 is the ClearPad™, available fromSynaptics Incorporated of San Jose, Calif. The ClearPad™ is 83.70 mmwide by 71.25 mm high. It has an x/y position resolution of greater than1000 dots per inch. Its power supply voltage is 5.0V±10%, and its powersupply current is just a few milliamps, making it suitable for use withportable computing devices. The ClearPad™, however, is merely oneexample of the touch screen 420 and does not constitute a limitation ofthe present invention. Rather, touch screens having characteristicswhich differ from those of the ClearPad™ may be used to implement thetouch screen 420.

The output module 406 includes a liquid crystal display (LCD) 408 suchas a 5″ active-matrix transflective color TFT screen from Samsung, andaudio speakers 410. The LCD 408 and the touch screen 420 may beimplemented using a single touch screen. For example, in one embodimentof the present invention, both the LCD 408 and the touch screen 420 areimplemented using the Synaptics cPad™. Utilizing Synaptics capacitiveClearPad™ touch screen technology, the cPad serves as both a navigationdevice for cursor control and as a display. The cPad integrates aClearPad sensor with a 240×160 pixel liquid crystal display, and ELbacklighting.

The power module 430 includes a rechargeable battery pack of cells 432such as the UP295385 Li-polymer battery cell from Sony, and a powerexchanging circuit 434 for receiving and distributing power through anexternal connection. The inter-device communication module 436 includeselectrical connectors 438 and a radio frequency (RF) wirelesscommunication circuit 440. Examples of electrical connectors that may beused by the core component 402 c and the other components shown in FIG.4 are described in detail below with respect to FIGS. 7A–7C. The storagemodule 426 includes a fast and high-capacity (10+ gigabytes) hard diskdrive 428. The storage module 426 may also include part or all of theRAM 416.

In one embodiment, the physical weight, physical volume, and userinterface of the core component 402 a are comparable to those of aconventional handheld computer or personal digital assistant (PDA). Theamount of media storage, processing, and battery life included in thecore component 402 a may be comparable to that of a laptop. In oneembodiment, the hard disk drive 428 of the core component 402 a providesthe primary media storage for most computing systems formed from thecomponent set 400.

In one embodiment, one advantage of the core component 402 a is itsportability. It may be of a size and weight such that it can comfortablybe carried in clothing pockets or handbags. As described above, the corecomponent 402 a may itself constitute a computing system havingcomputing power comparable to that of conventional desktop and laptopcomputers but with increased portability. Similarly, the computing powerof the core component 402 a may make it a more powerful tool thanconventional handheld computers.

A further advantage of the core component 402 a is that it may beinterconnected with the other components 402 b–d in the component set400 to form a variety of computing systems that share the same data andapplications. This contrasts with conventional handheld devices, which,as described above, often include redundant data sets and applications,and which often do not include the same data as the user's desktop orlaptop computer. This feature of the component set 400 eliminates theneed to edit data down to a “portable” size. It also eliminates the needto synchronize data between computing devices since the components 402a–d in the component set 400 may be interconnected into a variety ofcomputing devices that may satisfy all of the user's computing needs,and because the primary store of data is contained in a highly portabledevice (the core component 402 a).

The inclusion of a wireless circuit 440 in the core component 402 aenables the core component 402 a to communicate wirelessly with othercomponents 402 b–d and with other wireless devices. Use of wirelesscommunication is predicted to increase and to be implemented in a verywide array of appliances, even those not traditionally viewed ascomputing devices. In one embodiment of the present invention, theportability, computing power, and storage volume of the core component402 a makes it uniquely applicable for use in applications involvingwireless communications.

Referring to FIG. 5B, in another embodiment, the input component 402 bincludes an input module 450, a power module 456, and an interdevicecommunication module 462. In the depicted embodiment, the inputcomponent 402 b does not include all of the functional modules requiredby a computing system and therefore cannot operate in isolation as acomputing system. This, however, is not a limitation of the presentinvention. Rather, the input component 402 b may include a greater orlesser number of components than that shown in FIG. 5B and may includeall of the functional modules required by a computing system. In theembodiment depicted in FIG. 5B, the input component 402 b provides auser input interface when interconnected with some or all of the othercomponents in the component set 400.

The input module 450 includes a conventional computer keyboard 452 withan integrated touchpad cursor pointing device 454, and has an appearancesimilar to that of a conventional computer keyboard. The interdevicecommunication module 462 includes electrical connectors 464 and a lowpower wireless transceiver circuit 466, such as a Bluetooth circuit. Inone embodiment, the power requirements of the input component 402 b arelow, and therefore the power module 456 includes only a solar cell 460and a small re-chargeable coin cell battery 458.

Referring to FIG. 5C, in one embodiment, the output component 402 cincludes an output module 470, an input module 476, a processing module480, a storage module 488, a power module 492, and an interdevicecommunication module 498. It should be appreciated that the embodimentof the output component 402 c shown in FIG. 5C includes the essentialfunctional modules of a portable computing system: the input module 476,the output module 470, the power module 492, the processing module 480,and the storage module 488. The embodiment of the output component 402 cshown in FIG. 5C may, therefore, operate independently as a computingsystem. For example, in one embodiment, the output component's limitedprocessing, limited storage, touch screen input, speaker output, andphysical appearance perform functions similar to those of a conventionalweb pad. In various other configurations, as described in more detailbelow, the output device 402 c primarily performs the functions of aconventional display monitor.

The output module 470 may appear physically similar to a conventionalLCD desktop monitor. It includes audio speakers 474 and a large LCDdisplay 472, such as a 14.1″ color TFT active matrix panel. The inputmodule 476 includes a touch screen 478, such as a resistive orcapacitive touch screen, overlaid on the LCD 472. The processing module480 includes a limited capacity, low power microprocessor 482, such asDragonball System's Dragonball EZ, a limited amount of system RAM 484,and a low-power video processing chip 486, such as Silicon Motion's LynxEM+. The storage module 488 includes a limited-size flash RAM 490. Theflash RAM 490 has sufficient capacity to store some applications but notenough to provide permanent user data storage. The power module 492includes a permanent, large capacity battery pack 494 that complementsthe form factor of the LCD screen 472, such as a multi-cell lithiumpolymer pack, and a power exchanging circuit 496 for sharing power withexternal devices. The interdevice communication module 498 includes awireless transceiver circuit 502, such as a Bluetooth circuit, 80211bcircuit, HomeRF circuit, or infra-red transceiver, and additionalconnectors 500 for transmitting data and for other communication withcomponents 402 a–b and 402 d.

As an individual device, the output component 402 c has the ability toconnect through a modem or wirelessly through a base station to theInternet. The user may interact with websites directly using the touchscreen 478. The output component 402 c may also include additionalstorage for web page caching to improve performance. The outputcomponent 402 c may act as a web appliance in that it may appear to theuser solely as an interface to the Internet. Storage provided by theoutput component 402 is primarily abstracted over the Internet or othernetwork. This type of keyless-input internet appliance is often (andhereafter) referred to as a “web pad.”

Note that although the particular embodiment of the output component 402c shown in FIG. 5C includes all of the functional modules of a computingsystem, this is not a requirement of the present invention. Rather, theoutput component 402 c may include fewer than all of the functionalmodules of a computing system and therefore not be capable of acting onits own as a computing system.

Referring to FIG. 5D, in one embodiment, the storage component 402 dincludes an input module 514, an output module 504, a processing module524, a power module 508, a (removable) storage module 528, and aninterdevice communication module 518. In one embodiment of the presentinvention, the storage component 402 d primarily performs the functionsof a persistent media storage device, such as an optical media reader(e.g., a CD-ROM drive), in most configurations. The storage component402 d may, however, perform a variety of other functions, such assourcing power to other components from its battery. In one embodiment,the storage component 402 d is designed to appear physically similar toa standard portable CD audio player.

The input module 514 includes a standard set of CD player buttons 516,such as play/pause, stop, track forward, and track backward. The outputmodule 504 includes an audio-out jack 506 for connection to standardheadphones. The processing module 524 is also essentially identical tothe audio circuitry of a portable CD player, including a standard audiocodec 526, a headphone amplifier, and minimal RAM for skip buffering.The power module 508 includes a battery 510 of sufficient capacity tominimally play an audio CD, and a power exchanging circuit 512 forsourcing or receiving power from external sources. The interdevicecommunication module 518 includes a low power wireless communicationcircuit 522 of sufficient bandwidth to transmit encoded audioinformation, such as a Bluetooth circuit, as well as standard electricalconnections 520 for transmitting power and other information such asvideo to and from other components. The storage module 528 includes theremovable optical media 530 itself, such as a DVD or CD.

In certain configurations the storage component 402 d performs functionssimilar to those performed by an optical drive of a conventional laptopcomputer, but is physically removable and includes enough additionalfunctional modules that it may operate independently as a computingsystem. Thus, as a discrete device, it is not dormant or fragile (as isthe case with many removable laptop media drives), but is rugged andfully functional as an audio CD playback unit.

As described above, in various embodiments of the present inventioncomponents may be rearranged and interconnected to form differentcomputing systems. Various computing systems that may be formed usingthe components 402 a–d in the component set 400 (FIG. 4) will now bedescribed.

It should be noted that, although not expressly described in thefollowing examples, components may share power using their respectivepower modules in a variety of ways in different configurations, as willbe apparent to those of ordinary skill in the art. Furthermore, althoughnot explicitly stated in the following examples, it should be assumedthat the components 402 a–d may communicate with each other using theirrespective interdevice communication modules in the variousconfigurations.

The core component 402 a may operate independently as a personal digitalassistant (PDA) and/or a digital audio player (such as an MP3 player).In particular, when the core component 402 a is not connected to any ofthe other components 402 b–d, the core component 402 a may operate in afirst mode in which the touch screen 420 of the input module 418 (FIG.5A) both receives input (e.g., from a user's finger) and providesdisplay output. The user may, for example, use his finger to selecticons displayed on the touch screen 420 and to interact with othergraphical user interface (GUI) controls, such as menus, windows, andbuttons. The touch screen 420 may additionally or alternatively becapable of receiving input from a stylus.

Referring to FIG. 8A, for example, a core component 802 a is shown in afirst configuration 800 a. The core component 802 a is an example of thecore component 402 a (FIG. 5A). In one embodiment, the core component802 a includes: a Crusoe 0.13 micron TM5800 processor from TransmetaCorporation of Santa Clara, Calif.; a notebook computer hard disk drivewith 10–20 GB of storage capacity, such as the model MK2003GAH hard diskdrive from Toshiba America Electronic Components, Inc. of Irvine,Calif.; 256 MB of RAM, such as 8×256 Mbit DDR SDRAM available from NanyaTechnology Corp. of Linkou, Taiwan; a five-inch, high-resolutionsuper-bright VGA color LCD, such as a 5-inch Transflective WVGA TFT LCD(800*480, 64 k color) active-matrix transflective color display fromSamsung Electronics, Ltd. of Hong Kong; a ClearPad™ touchscreen fromSynaptics Incorporated of San Jose, Calif.; an advanced lithium polymerbattery such as the UP295385 Li-polymer battery cell from SonyElectronics, Inc. of Park Ridge, N.J.; input/output ports for IEEE 1394(FireWire), Universal Serial Bus (USB), audio in/out, and a dockingconnector; and built-in 802.11 and Bluetooth wireless networking. In oneembodiment, the core component 802 a is 4.1″ (105 mm) wide×2.9″ (74 mm)long×0.9″ (22 mm) thick and weighs less than 9 ounces (250 grams). Corecomponent 802 a includes a touch screen 804, which is an example oftouch screen 420, and buttons 806, which are examples of buttons 422.

The core component 802 a may operate in a first mode in theconfiguration 800 a shown in FIG. 8A, in which the core component 802 ais not connected to any other components. In particular, in the firstmode of operation the touch screen 804 may be enabled both to receiveinput and to display output. For example, a user may move finger 808across the surface of the touch screen 804 to control movement of anon-screen cursor 822. In the particular example shown in FIG. 8A,movement of finger 808 on the surface of the touch screen 804 causes acorresponding movement of the on-screen cursor 822. The user may therebyinteract with graphical user interface (GUI) widgets such as menus,icons, and buttons. In FIG. 8A, for example, the cursor 822, in responseto movement of the user's finger 808, is shown as selecting an “Open”menu choice 820 b among a plurality of menu choices 820 a–d in a “File”menu 818. The touch screen 804 both receives input from the user'sfinger 808 and displays output, such as the file menu 818. Those ofordinary skill in the art will appreciate how to design and implementsoftware for causing the touch screen 804 to perform these functions.

The core component 402 a and the output component 402 c may beinterconnected to form a PDA with a larger display (output module 470)provided by the output component 402 c. In this configuration, the corecomponent 402 a may provide the processing module 412, the input module418, and the storage module 426, while the output component 402 c mayprovide the output module 470.

Alternatively, in this configuration the core component 402 a mayoperate in a second mode in which the touch screen 420 of the inputmodule 418 (FIG. 5A) exhibits the behavior of a trackpad. In particular,the touch screen 420 may continuously track the position of the user'sfinger 808 on the touch screen's surface. The core component 402 a maycause an on-screen pointer, displayed on the LCD 472 of the outputcomponent 402 c, to move in correspondence with the movement of theuser's finger 808 on the surface of the touch screen 420.

Referring to FIG. 8B, for example, the core component 802 a is shown ina second configuration 800 b in which the core component 802 a iscoupled to a docking component 802 b. The docking component 802 billustrated in FIG. 8B has the form factor of a conventional laptopcomputer. The docking component 802 b includes, for example, an uppercomponent 824 a and a lower component 824 b joined at a hinge 830. Uppercomponent 824 a includes a display screen 828 and lower component 824 bincludes a keyboard 826. The docking component 802 b therefore includesat least some of the features of both the output component 402 c (FIG.5C) and the input component 402 b (FIG. 5B). In the embodimentillustrated in FIG. 8B, however, the docking component 802 b does notinclude a processing module (such as the processing module 480 shown inFIG. 5C) or a storage module (such as the storage module 488 shown inFIG. 5C). Rather, these modules are provided by the processing module412 and the storage module 426 of the core module 802 a in theembodiment of FIG. 8B.

The core component 802 a is coupled to the docking component 802 bwithin a cavity 834 in the docking component 802 b. In the embodimentillustrated in FIG. 8B, the cavity 834 is located underneath theright-hand side of the keyboard 826. Alternatively, the cavity 834 maybe located in the docking component 802 b at the location where atrackpad is typically located in a conventional laptop computer (i.e.,beneath the center of keyboard 826). Once the core component 802 a iscoupled to the docking component 802 b, the touch screen 804 may beenabled for use either as a stylus-based digitizer or as a trackpad.Once the core component 802 a is coupled to the docking component 802 b,therefore, the configuration 800 b presents the user with a physicaluser interface that closely resembles that provided by a conventionallaptop computer.

If the touch screen 804 is enabled for use as a trackpad in theconfiguration 800 b shown in FIG. 8B, a user may move finger 808 acrossthe surface of the touch screen 804 along a trajectory 812 havingstarting point 810 a and end point 810 b. The core component 802 a mayregister the input provided thereby, and transmit appropriate output tothe display screen 828 in response, thereby causing cursor 832 to moveon screen 828 from starting point 814 a to end point 814 b along atrajectory 816 that corresponds to trajectory 812. Those of ordinaryskill in the art will appreciate how to design and implement softwarefor controlling the on-screen cursor 832 in response to movement of theuser's finger 808.

Conventional PDA touch screens typically require high-pressure contact.Human fingers are typically not capable of satisfying such pressurerequirements while performing detailed pointing operations. As a result,it is typically necessary to use a thin and rigid stylus to provideinput to a PDA. The touch screen 420, however, may be implemented usinga “soft touch” touch screen, such as the ClearPad™. While typicaltouchscreens are operated by bending a conductive membrane into physicalcontact with a conductive surface, which requires pressure, theClearPad™ sensor is based on capacitance, and requires only the softesttouch of the user's finger on the screen's surface. The ClearPad™ iscapable of continuously tracking the position of the user's finger onthe surface, unlike touch screens typically used in conventional PDAs.The ClearPad™ may therefore be used to enable the touch screen 420 toperform the functions of a trackpad, in addition to enabling “softtouch” input to the core component 402 a when it operates as a PDA.

The output functionality of the touch screen 420 may optionally bedisabled while the touch screen 420 is in use as a trackpad, because theuser may not require or desire any output on the touch screen 804 whilethe touch screen 804 is in use as a trackpad. For example, asillustrated in FIG. 8B, the touch screen 804 does not display any outputin the configuration 800 b. The touch screen 804 may, for example,display a solid field of a single color while in use as a trackpad.Alternatively, the touch screen 804 may, for example, enter a low-energymode in which all output is disabled while the touch screen 804 is inuse as a trackpad.

The core component 402 a, the output component 402 c, and the inputcomponent 402 b may be interconnected to perform functions similar to aconventional sub-notebook computer. The core component 402 a may providethe processing module 412 and the storage module 426. The inputcomponent 402 b may provide the input module 450, and the outputcomponent 402 c may provide the output module 470. The touch screen 420of the core component 402 a may also perform the functions of atrackpad, as described above, to provide an additional means of input inthis configuration. Such a feature may be particularly useful if, forexample, the input module 450 of the input component 402 b includes onlythe keyboard 452 and not the touchpad 454. This configuration thereforeenables the user to access the full processing and storage capabilitiesof the core component 402 a using the larger and more full-featuredinput module 450 of the input component 402 b and the output module 470of output component 402 c.

The core component 402 a, input component 402 b, output component 402 c,and storage component 402 d may be interconnected to perform functionssimilar to that of a conventional laptop or desktop computer. The corecomponent 402 a may provide the processing module 412, the inputcomponent 402 b may provide the input module 450, the output component402 c may provide the output module 470, and the storage component 402 dmay provide the storage module 528. The touch screen 420 of the corecomponent 402 a may also perform the functions of a trackpad, asdescribed above, to provide an additional means of input in thisconfiguration. This configuration therefore enables the user to accessthe maximum processing power and storage capabilities provided by thecomponents 402 a–d at once.

The core component 402 a and input component 402 b may be interconnectedto perform functions similar to that of a conventional PDA with afull-size keyboard connected to it. The core component 402 a may providethe processing module 412, the output module 406, and the storage module426, while the input component 402 b may provide the input module 450.This configuration therefore enables the user to access the fullprocessing power and storage capabilities of the core component 402 ausing a full-size keyboard.

The core component 402 a and storage component 402 d may beinterconnected to perform functions similar to that of a portable DVDplayer. The core component 402 a may provide the processing module 412,the output module 406, and the input module 418, while the storagecomponent 402 d may provide the storage module 528. This configurationtherefore enables the user to play back audio and/or video from a DVDusing the portable core component 402 a.

The core component 402 a, the storage component 402 d, and the outputcomponent 402 c may be interconnected to perform functions similar tothat of a home theater system. The core component 402 a may provide theprocessing module 412 and the input module 418, the storage component402 d may provide the storage module 528, and the output component 402 cmay provide the output module 470. In particular, the touch screen 420of the core component 402 a may perform the functions of a trackpad, asdescribed above, in this configuration. This configuration thereforeenables the user to play back audio and/or video from a DVD on thelarger display provided by the output component 402 c using the portablecore component 402 a. Using wireless connections the core component 402a may be used as a wireless remote control to control the DVD player.

The core component 402 a, the storage component 402 d, and the inputcomponent 402 b may be interconnected to perform functions similar tothat of a portable DVD player with a keyboard. The core component 402 amay provide the processing module 412 and the output module 406, thestorage component 402 d may provide the storage module 528, and theinput component 402 b may provide the input module 450. Thisconfiguration therefore enables the user to play back audio and/or videofrom a DVD using the portable core component 402 a. The touch screen 420of the core component 402 a may also perform the functions of atrackpad, as described above, to provide an additional means of input inthis configuration.

The input component 402 b and the output component 402 c may beinterconnected to form an Internet appliance that may be used, forexample, to browse the web or to send and retrieve email. The inputcomponent 402 b may provide the input module 450, while the outputcomponent 402 c may provide the output module 470, the processing module480, and the media storage module 488. Either the input component 402 bor the output component 402 c may also include a network module toconnect to the Internet. This configuration therefore enables the userto connect to the Internet while the core is in use elsewhere.

The input component 402 b, the output component 402 c, and the storagecomponent 402 d may be interconnected to form a combined Internetappliance and home theater system. The input component 402 b may providethe input module 450, the output component 402 c may provide the outputmodule 470 and the processing module 480, and the storage component 402d may provide the storage module 528. This configuration thereforeenables the user to both connect to the Internet and play audio andvideo using a small, lightweight, and portable computing system.

The output component 402 c may be used by itself as a web pad to connectto the Internet for browsing the web and/or sending and receiving email.The output component's output module 470, input module 476, processingmodule 480, and storage module 488 form a complete computer system andtherefore enable it to operate independently of the other components.This configuration therefore enables the user to connect to the Internetusing a small, lightweight, and portable computing system.

The output component 402 c and the storage component 402 d may beinterconnected to form a home theater system. The output component 402 cmay provide the processing module 480, the input module 476, and theoutput module 470, while the storage component 402 d may provide thestorage module 528. This configuration therefore enables the user toplay audio and video using a small, lightweight, and portable computingsystem.

The storage component 402 d may be used by itself as a CD audio player,similar in function to conventional CD audio players such as the SonyDiscman. The storage component's output module 504, input module 514,processing module 524, and storage module 528 form a complete computersystem and therefore enable it to operate independently of the othercomponents. This configuration therefore provides the user with a highlyportable CD audio player.

It should be appreciated that some combinations of configurations ofcomponent set 400 may operate contemporaneously. For example, the corecomponent 402 a may be used by itself at the same time as the inputcomponent 402 b and the output component 402 c are interconnected toeach other to operate as an Internet appliance. Various othercombinations of configurations that have this property should beapparent from the description above. The ability of multipleconfigurations of the component set 400 to operate contemporaneouslyincreases the functionality of the component set 400 and diminishes theextent to which any one of the components 402 a–d is “dead” while othercomponents are operating.

Furthermore, more than two configurations may operate contemporaneouslyas computing systems. For example, the core component 402 a may operateindependently as a PDA, the output component 402 c may operateindependently as a web pad, and the storage component 402 d may operateindependently as a CD audio player, for a total of threecontemporaneously-operating configurations. Similarly, the corecomponent 402 a and the input component 402 b may be interconnected toform a PDA with keyboard, the output component 402 c may operateindependently as a web pad, and the storage component 402 d may operateindependently as a CD audio player. As another example, the corecomponent 402 a may operate independently as a PDA, the input component402 b and the output component 402 c may be interconnected to form anInternet appliance, and the storage component 402 may operateindependently as a CD audio player. These configurations are providedmerely for purposes of example and do not constitute limitations of thepresent invention.

It should also be appreciated that the component set 400 may includemultiple ones of one or more of the components 402 a–d. For example, thecomponent set 400 may include multiple core components 402 a, multipleinput components 402 b, multiple output components 402 c, and/ormultiple storage components 402 d. Inclusion of such additionalcomponents further increases the number of configurations of thecomponent set 400, and increases the number of configurations of thecomponent set 400 that may be operated contemporaneously as computingsystems. For example, inclusion of a second core component 402 a enablesthe contemporaneous use of one core component 402 a interconnected withthe input component 402 b as a PDA with keyboard, and another corecomponent 402 a interconnected with the output component 402 c as a PDAwith a large display.

One advantage of the physical modularity in conjunction with theredundant functional modularity described above is that in combinationthey enable the component set to be flexibly formed into configurationshaving different features that efficiently satisfy the needs of aparticular user at a particular time. For example, a user who does notrequire a large screen may use the core component 402 a—with its smallscreen—by itself, thereby obtaining a mobile computing system thatsatisfies the user's unique combination of needs. If the usersubsequently requires a larger display, the user may connect the corecomponent 402 a to the output component 402 c. The size of variousconfigurations of embodiments of the present invention may be smallerthan conventional systems that perform the same functions because of theseparation of functional modules into different physical modules.Furthermore, because components in a component set are able tocommunicate with each other according to various embodiments of thepresent invention, separation of functional modules into differentphysical modules need not result in lack of interoperability betweencomponents.

One advantage of the particular set of components described above withrespect to FIGS. 5A–5D is that various configurations of the componentscorrespond to well-established and familiar paradigms for computingsystems. For example, in the configuration 800 a illustrated in FIG. 8Athe core component 802 a operating by itself presents the user with aninterface and functionality that are similar to that of a conventionalhandheld computer or PDA, which are established paradigms that arefamiliar to many users. Similarly, in one embodiment the configurationincluding all of the components 402 a–d presents the user with aninterface and functionality that are similar to that of the familiarlaptop computer. When the components 402 a–d are physically disengaged(although still in wireless communication), they present the user withan interface and functionality that is similar to that of a conventionaldesktop computer. Various other examples should be apparent from thedescription above. As a result of the ability of the components 402 a–dto emulate various conventional computing systems in variousconfigurations, ease of use is not sacrificed to ease ofreconfiguration.

As described above, the core component 402 a may operate in one of atleast two modes: a first mode in which the touch screen 420 both acceptsinput and provides output for the core component 402 a, and a secondmode in which the touch screen 420 receives input that may be providedto another one of the components 402 b–d. Referring to FIG. 9, a flowchart is shown of a method 900 that may be performed by the corecomponent 402 a to select and operate in one of the first and secondmodes of operation. It should be appreciated that the method 900 isshown merely for purposes of example and does not constitute alimitation of the present invention. Rather, the core component 402 amay use other techniques to select modes of operation. Furthermore, thecore component 402 a may additionally or alternatively include means(such as a button or switch) for allowing the user to manually selectone of the first and second modes of operation. Furthermore, theparticular first and second modes of operation described herein areprovided merely for purposes of example and do not constitutelimitations of the present invention.

Referring to FIG. 9, the method 900 determines whether the corecomponent 402 a is connected to another component-(step 902). If thecore component 402 a is connected to another component, the corecomponent 402 a enters a first mode of operation (step 904), in whichinput through the touch screen 420 is enabled (step 906) and in whichoutput through the touch screen 420 is enabled (step 908). In the firstmode, therefore, the core component 402 a may provide functionalitysimilar to that of a conventional PDA.

If the core component 402 a is connected to another component, themethod 900 determines whether the other component includes a displaymonitor (step 910). If the other component does not include a displaymonitor, the core component 402 a enters the first mode of operation asdescribed above with respect to step 904.

If the core component 402 a is connected to another component (such asthe output component 402 c) that includes a display monitor (such as theLCD 472), the core component 402 a enters a second mode of operation(step 912). The core component 402 a enables input through the touchscreen 420 (step 914), disables output through the touch screen 420(step 916), and transmits input received from the touch screen 420 tothe other component (step 918). In the second mode, therefore, the corecomponent 402 a may provide functionality similar to that of aconventional trackpad.

In general, enabling the touch screen 420 to be used as a trackpadprovides the advantages of conventional trackpads. One advantage oftrackpads generally, for example, is that they may be integrated into acomputing device (such as the core component 402 a) in a relativelysmall space and without increasing the volume of the device. Thisprovides an advantage over external input devices such as mice, theoperation of which requires desktop space in addition to that occupiedby the computing device to which it is connected. Furthermore, trackpadsare less prone to wear than mice, and users may find trackpads easier tooperate than mice and other kinds of pointing devices.

Use of the core component 402 as a trackpad may reduce the total numberof input devices that need to be included in the components 402 a–d ofthe system 400. For example, the touch screen 420 of the core component402 a may provide trackpad input to the output component 402 c when thecore component 402 a is connected to the output component 402 c. Thismay eliminate the need to include the touch screen 478 in the outputcomponent 402 c, since the trackpad functionality of the touch screen420 may satisfy the input requirements that would otherwise be satisfiedby the touch screen. As a result, the output component 402 c may bemanufactured more easily and inexpensively.

Even if the touch screen 420 is used as a trackpad in addition to ratherthan instead of other input devices, the ability to use the touch screen420 as a trackpad increases the flexibility of the core component 402 aas a device for providing input to the other components 402 b–d. Moregenerally, the ability of the touch screen 420 to be used as a trackpadincreases the input options available to the user in each of theconfigurations in which it is available. For example, when the corecomponent 402 a is connected to the output component 402 c, the user mayprovide input using the touch screen 478 of the output component 402 cin the same manner as a conventional touch screen. The ability to usethe touch screen 420 of the core component 402 a as a trackpad in such aconfiguration provides the user with an additional input option, whichthe user may use either instead of or in addition to the inputcapabilities provided by the touch screen 478. This both allows userswho have a preference for one kind of input—touch screen ortrackpad—over the other to use their preferred mode of input, and allowsusers to use the mode of input that may be most convenient orappropriate at a particular time. A user may, for example, choose to usethe touch screen 478 as a touch screen to select icons on the LCD 472,while using the touch screen 420 as a trackpad to draw shapes or selectblocks of text.

The ability to use the touch screen 420 as a trackpad may provide thisadditional flexibility without any increase in size. The cPad™, forexample, is no larger than conventional touch screens. Furthermore, theability to use the touch screen 420 as a trackpad provides theadditional functionality of a trackpad without requiring the use of aphysically distinct trackpad or mouse component. Trackpad functionalityis thereby added to various configurations of the system 400 withoutincreasing the overall size or power requirements of the system 400, thenumber of interconnections between the components 402 a–d of the system400, or the complexity of the system 400 from the point of view of theuser.

In various embodiments of the present invention, the use of the touchscreen 420 as a trackpad does not require the use of a stylus, unlikeconventional PDA touch screens. Rather, in various embodiments of thepresent invention, the user may use a finger to operate the touch screen420 as a trackpad. This provides a benefit over stylus-based touchscreens, because the stylus represents an additional component that mustbe stored and transported, and which may be misplaced or lost. Theability to operate the touch screen 420 as an input device without astylus is particularly useful in configurations in which the touchscreen 420 is used in conjunction with other input devices, such as thekeyboard 352 of the input component 402 b. In such a configuration, theuser may easily switch back and forth between providing input throughthe keyboard 352 and the touch screen 420. If the touch screen 420required a stylus to provide input, switching between the touch screen420 and keyboard 352 would require the user to repeatedly take hold ofand release the stylus, thereby increasing the number of movementsrequired and increasing the opportunity for the stylus to be misplaced.

Although the use of a finger to provide input to the touch screen 420may be beneficial in certain embodiments of the present invention, thepresent invention is not limited to such embodiments. Rather, thetechniques disclosed herein may be implemented, for example, using touchscreens that are capable of receiving input from a finger, stylus, or acombination thereof.

Furthermore, the core component 402 a may have a form factor that isparticularly well-suited to provide trackpad functionality. For example,as described above, the core component 402 a may have a form factor thatis similar to that of a conventional PDA. For example, as describedabove, in one embodiment the core component 402 a is 4.1″ (105 mm)wide×2.9″ (74 mm) long×0.9″ (22 mm) thick and weighs less than 9 ounces(250 grams). As a result, the touch screen 420 of the core component 402a may not only be technically capable of acting as a trackpad, but alsobe ergonomically suitable for use as a trackpad.

In addition, the touch screen 420 may be enabled for use as a trackpadwithout the addition of any hardware to the core component 402 a. Whenthe touch screen 420 is implemented using the ClearPad™ touch screen,for example, the core component 402 a already includes the hardwarenecessary to receive and process input from through the touch screen420. Furthermore, if the components 402 a–d of the system 400 alreadyinclude sufficient hardware to communicate with each other in the waysdescribed herein, such hardware is also sufficient to communicatetrackpad-based input received through the touch screen 420 to othercomponents 402 b–d. The implementation of software to enable the touchscreen 420 to operate as a trackpad is within the ability of those ofordinary skill in the art.

Component interface 304 and connectors 302 a–b were shown and describedgenerally above with respect to FIGS. 3A–3D. Various embodiments of thecomponent interface 304 and connectors 302 a–b are now described in moredetail. Also described in more detail are embodiments of varioustechniques that may be used to select functional modules for use indifferent configurations of a component set.

As described generally above, a particular component may partially orentirely implement one or more functional modules. For example,referring again to FIG. 5A, the core component 402 a implements anoutput module 406 and a processing module 412, among other modules. In aparticular configuration of the component set 400, output may (forexample) be provided using the core component's output module 406. Theinformation to be output (e.g., a graphic image) may originate fromwithin the core component 402 a (such as from the core component'sstorage module 426) or from another component in the configuration.

More generally, when components are interconnected in a particularconfiguration, the set of functional modules (and their sub-components)provided by the interconnected components are said herein to form aresource pool. The computing system represented by the configuration mayuse one or more functional modules of each class in the resource pool toperform the corresponding function. For example, if two components in aconfiguration (such as the core component 402 a and the input component402 b) both include an input module, then the configuration's resourcepool includes both input modules. The computing system represented bythe configuration may select either or both of the input modules (orsub-components or combinations thereof) to receive input for thecomputing system.

In other words, when components are interconnected in a particularconfiguration to form a computing system, the functional modules (andsub-components thereof) provided by such components become available foruse by the computing system as a whole. For example, when aconfiguration includes a component having a keyboard, the keyboard maybe used to provide input to one or more of the components in thecomputing system. It should be appreciated that physical sub-componentsfrom multiple components may be combined to form a single functionalmodule in the resource pool available for use by the computing system.It should further be appreciated that in any particular configuration,any particular functional module may be available for use by allcomponents in the configuration or only a subset of components in theconfiguration. For example, the storage component's processing module526 may only be available to perform processing tasks for the storagecomponent 402 d and not for other components. The ability of afunctional module implemented by a particular component to becomeavailable for use by other components may be limited in particularembodiments by constraints of hardware design, software, or otherfactors. The resource pool for a particular configuration may thereforeinclude fewer than all of the functional modules in the configuration;alternatively, there may be multiple resource pools representingfunctional modules available for use by various components in theconfiguration.

It has now been described generally that components that areinterconnected to form a particular computing system may providefunctional modules for use by the computing system as a whole, and thatthe computing system may choose which functional modules for use toperform particular functions. Embodiments of various techniques formaking such choices are now described in more detail.

In one embodiment of the present invention, a “feature list” isassociated with each component. The feature list for a particularcomponent includes information descriptive of the features provided bythe corresponding component. The feature list may, for example, includeinformation about which functional modules are partially or entirelyimplemented by the component. A feature list may also include otherinformation about a component. A feature list may, for example, provideinformation about features of a component including, but not limited to:

-   -   the type (e.g., manufacturer, model name, and model number) of        processor(s) contained within the component and characteristics        of such processors, such as their clock speed;    -   the type(s) of network interface cards or other networking        devices contained within a component, and characteristics of        such devices, such as their speed;    -   the input capabilities of the component, such as whether it        includes a keyboard, mouse, touch screen, or other input device;    -   the output capabilities of the component, such as whether it        includes a display or printer and, if so, the component's output        spatial resolution, size, and color resolution;    -   the storage capabilities of the component, such as whether it        includes a hard disk drive, RAM, or other storage device, and        the storage capacity of such storage device; and    -   the power capabilities and requirements of the component, such        as whether it provides its own power or requires an external        power source (and, if so, how much power it requires to        operate), and whether it may be used to provide power to other        components.

The feature list may also include additional information about eachfeature, such as whether the feature may be accessed by other componentsand, if so, how the feature may be accessed by other components. If, forexample, a component includes a storage module, the component's featurelist may indicate whether other components may access the storage moduleand, if so, on which port of the component the storage module of thecomponent may be accessed.

It should be appreciated that the feature list information described inthe list above is provided merely for purposes of example and does notconstitute a limitation of the present invention. Rather, the featurelist associated with a component may include any information about thecomponent. Furthermore, the feature list may be stored and representedusing any data structure and in any data format, as may be convenient.The kind and amount of information contained in the feature list mayvary from component to component. The feature list for a particularcomponent may be generated at any time and in any manner. For example,the feature list may be generated by the manufacturer of the componentat the time of manufacture or by a system administrator upon initialinstallation and/or configuration of the component. The feature list fora component may be stored on a computer-readable medium within thecomponent itself, such as on a ROM. Furthermore, it should beappreciated that the use of feature lists is provided merely forpurposes of example and is not a requirement of the present invention.

In one embodiment of the present invention, a component may examine itsown feature list to ascertain which features are provided by thecomponent, and the component may ascertain which features are providedby other components in a component set using the feature lists of theother components. Consider, for purposes of example, an existinginterconnected component set including one or more components. Referringto FIG. 6, a flow chart is shown of a process 600 that may be performedby one or more components in a component set when a new component isadded to the component set, according to one embodiment of the presentinvention. When a new component is connected to any of the components inthe existing component set, a configuration change detection (CCD) eventis generated (step 602). The CCD event indicates that there has been achange in the component set. The CCD event may, for example, begenerated by the new component, by the existing components, or by acombination of both. The event may, for example, take the form of aspecial signal that is transmitted on a bus that is common to the newcomponent and the existing components. As a result, the CCD event isreceived by one or more of the components.

When a component receives a CCD event, the component may transmitinformation about itself to other components in the component set. Suchinformation may include, for example, a device identifier (device ID)and part or all of the component's feature list. The device ID may be aunique identifier (such as a numeric or alphanumeric identifier), suchas a serial number. The transmission of component information inresponse to a CCD event may occur in any of a variety of ways. Forexample, in one embodiment of the present invention, when the newcomponent described above is connected to the existing component set,the new component and the existing components broadcast their device IDsand feature lists so that such information may be received by all of thecomponents (step 604). The components may take turns transmitting suchinformation in any appropriate order.

Some or all of the information transmitted by the components (e.g.,device IDs and feature lists) may be stored to maintain a record ofcurrent component set's resource pool. Such information may be stored inany of a variety of ways. For example, one or more of the components maystore information about itself, its neighbors, non-neighboringcomponents in the component set, or any combination thereof. A singlecomponent (such as the core device) may be selected for storinginformation about components in the component set.

For example, when the new component is added to the existing componentset, a CCD event may be generated (e.g., by the new component). Inresponse to the CCD event, each of the existing components may broadcastor otherwise transmit its device ID and/or feature list. Any number ofthe components may receive this information and process it in any of avariety of ways, as described in more detail below. For example, the newcomponent may store some or all of the information it receives toestablish and maintain a record of the features of other components(such as neighboring components) in the component set to which it hasbeen connected.

In one embodiment of the present invention, any two components that aredirectly coupled to each other by means of a physical or wirelessconnection between the two components are referred to herein as“neighboring” components. Such components are “directly” coupled to eachother in the sense that there is no other component coupled between thetwo neighboring components. For example, two neighboring components maybe connected to each other by means of a video cable, audio cable,serial cable, parallel cable, or wireless connection. It should beappreciated that non-neighboring components may still communicate witheach other indirectly using, for example, a common component thatneighbors each, or through a bus, even though no immediate physical orwireless connection exists between the non-neighboring components. Acomponent in a component set may have any number of neighboringcomponents.

In one embodiment of the present invention, when a new component isadded to an existing component set, the new component determines whichcomponents are its neighbors. For example, upon being connected to thecomponent set, the new component may transmit a neighbor handshakingsignal along a channel (e.g., a wire) that is reserved for communicationwith neighbors of the component. If the new component has a neighboringcomponent, the neighboring component receives the neighbor handshakingsignal and transmits a neighbor acknowledgement signal along the same oranother channel back to the new component. Receipt of the neighboracknowledgement signal by the new component indicates to the newcomponent that it has a neighbor. The neighboring component may alsotransmit additional information to the new component, such as its deviceID and feature list, so that the new component may obtain and/or storeadditional information about its neighbors.

Although the description above states that the new component determineswhich components are its neighbors when the new component is added to acomponent set, it should be appreciated that some or all of the existingcomponents may similarly update knowledge of their neighbors in responseto a CCD event (step 606). It should be appreciated that components mayascertain the existence and/or identity of their neighbors usingtechniques other than the particular examples described above.

The description above describes generally how components in a componentset may obtain information about each other, such as their device IDS,feature lists, and neighbor information. This information may beobtained, for example, whenever a component is connected to an existingcomponent set. Such information may also be obtained at other times. Forexample, a component may update its knowledge of other components whenit is rebooted. Alternatively, one or more components in a component setmay periodically refresh their knowledge of other components in the samecomponent set to ensure that such knowledge is not stale.

As described generally above, components in a component set may provideresources that may be used by other components in the component set.Various techniques for selecting resources (e.g., functional modules)for use in a particular configuration are now described in more detail.

As described above, in one embodiment of the present invention, afeature list is associated with each component. The feature listcontains information about the resources provided by the component.These resources are referred to herein as the component's “internalresources,” because they are physically located within the component.The component may also make use of resources provided by othercomponents, which are referred to herein as “external resources.” Itshould be appreciated that a particular resource is an “internal”resource with respect to the component within which the resource isphysically contained and an “external” resource with respect to allother components.

In one embodiment of the present invention, a “resource usage table” isassociated with each component in a component set. The resource usagetable identifies, at a particular point in time, which resources thecomponent is using to perform particular functions. The resource usagetable includes one or more fields, each of which corresponds to aparticular kind of resource (such as power, video input, audio output,etc.). Consider, for example, the core component 402 a. The resourceusage table for the core component may include a field for power. Thisfield identifies the power resource that is currently being used by thecore component as, for example, a battery. The field may, for example,store the device ID of a component containing energy. The device ID maybe the device ID of the core component itself or of another component inthe same component set as the core component. In other words, the corecomponent may use its own (internal) battery or the (external) batteryof another component. The resource usage table may contain similarfields for a variety of other resources, such as processing, network,input, output, and storage.

Although the resource usage table is described above as storing thedevice ID of a component providing a particular resource, it should beappreciated that resources in the resource usage table may be identifiedin any of a variety of ways. For example, a default value (e.g., 0 or−1) may be used to indicate that a particular resource is being providedinternally by the component itself. In another embodiment, a resourcemay be identified by specifying a physical or logical channel (such as acommunications port or pin in a connector) through which the resourcemay be accessed, instead of or in addition to specifying the device IDof a component providing the resource. Furthermore, information aboutthe location of a resource in addition to its associated device ID maybe stored in the resource usage table. For example, characteristics of aresource (such as the amount of RAM) may be stored in the resource usagetable.

It should be appreciated that the resource usage table may be stored andrepresented in any of a variety of forms. In particular, it is notlimited to being represented as a “table.” Rather, the functionsperformed by the resource usage tables described herein may beimplemented in any manner, such as by using any appropriate datastructure. In one embodiment of the present invention, each componentstores its own resource usage table, such as in a data structure in RAM.A component may, however, store the resource usage tables of othercomponents in the same component set. A global data structure includingresource usage tables of all components in a component set may also bemaintained. For example, the core device may maintain such a global datastructure. Furthermore, although the resource usage tables describedabove are dynamic, resource usage tables may be static and created, forexample, at the time of manufacture. For example, the resources to beused by a particular component may be pre-determined at the time of thecomponents manufacture, and be non-modifiable. Such pre-determinedresource selections may be implemented without the use of any tables atall. Combinations of these techniques may also be employed, as may beconvenient for particular applications.

It should be appreciated, therefore, that resource usage tablesassociated with components in a component set may be used to identifythe resources that are being used by each of the components at anyparticular point in time.

Various techniques for selecting which resources (e.g., functionalmodules) are to be used by components in a component set are nowdescribed in more detail. In one embodiment of the present invention,each component in a component set has a configuration strategy thatspecifies how to choose which resources the component is to use toperform particular functions. The configuration strategy for aparticular component includes a decision procedure for each of one ormore classes of resources. The decision procedure for a particular classof resource specifies how a particular resource is to be chosen for useby the component from among a set of available resources of that class.Resource classes include, for example, main memory (RAM), processing,network, input, output, storage, and power.

For example, a simple configuration strategy for the core component 402a might include a power decision procedure which specifies that the corecomponent is to use the largest power resource in the current resourcepool. The same configuration strategy may, for example, include an inputdecision procedure which specifies that the core component is to prefera full-size keyboard over a touch screen, and a touch screen over akeypad as an input device. The configuration strategy for a particularcomponent need not include decision procedures for all classes ofresources.

Decision procedures may take any of a variety of forms. For example, inone embodiment, a decision procedure is simply an ordered list ofresources of a particular class. The order of the list corresponds tothe order in which the resources are preferred for use by thecorresponding component. The resources in the list may, for example, beidentified by manufacturer, model number, serial number, device ID, orany combination thereof. The resources in the list may also beidentified by characteristics that are relevant to the resource class.For example, a list specifying display monitors may list combinations ofresolution and number of available colors in decreasing order ofpreference.

A decision procedure may also be represented as a rule or heuristic forselecting a particular resource from a set of available resources. Moregenerally, a decision procedure may be implemented in software as anyprocedure that may be executed to select a particular resource from aset of available resources.

The decision procedure for a particular resource class of a particularcomponent may be executed at any time to select a particular resource ofthat class for use with the particular component. The resource usagetable associated with the component may then be updated to reflect thatthe component is using the selected resource. From that point onward,the component will use the selected resource to perform its intendedfunction.

For example, as described above, the resource usage table of a componentmay be updated when the component is connected to an existing componentset. Referring again to FIG. 6, in one embodiment of the presentinvention, after a new component is added to a component set, one ormore of the components in the component set execute their configurationstrategies (e.g., by executing each of the decision procedures in theconfiguration strategies) to select resources for use by the components(step 608). The resource usage tables associated with the components arethen updated to reflect the resources being used by the components (step610). The components then use the resources selected by their respectiveconfiguration strategies (step 612).

The configuration strategy for a particular component may be storedinternally within the component. For example, the configuration strategyfor a particular component may be generated by the manufacturer of thecomponent at the time of manufacture or by a system administrator uponinitial installation and/or configuration of the component. Theconfiguration strategy for a component may be stored on acomputer-readable medium within the component itself, such as on a ROM.

In the examples described above, each component has its ownconfiguration strategy. In other embodiments, however, a singleconfiguration strategy may span multiple components. For example, aparticular configuration may have a single global configurationstrategy. For example, the configuration may have a global configurationstrategy that specifies that the configuration prefers to use afull-size keyboard rather than a touch-screen for input. The decisionprocedures of the global configuration strategy may be executed by, forexample, a predetermined component of the configuration, such as thecore component 402 a. The predetermined component may then update aglobal resource usage table or the individual component resource usagetables as appropriate to reflect the resources chosen by the globalconfiguration strategy.

As described above, a particular component may be capable of selectingeither an internal resource or an external resource of the same class toperform a particular function. For example, the core component 402 a mayinclude an internal video source that is capable of providing a videosignal to the core component's internal display. The core device may,however, also be capable of using an (external) video source provided byanother component to provide a video signal to the core component'sinternal display. As described above, the resource usage tableassociated with the core component will indicate which video source isbeing used by the core component at any particular point in time. Someresource selections may occur by default; for example, a resourceselection may be made automatically as a result of the mere act ofconnecting together two components of appropriate types.

In one embodiment of the present invention, the ability of a componentto select between an internal resource and an external resource for useto perform a particular function is provided by use of a multiplexorthat enables one of either the internal resource or the externalresource to be selected for use by the component. For example, referringagain to FIG. 5C, the output component 402 c includes internal LCD 472and internal microprocessor 482 that may act as a video source for theLCD 472. Assume for purposes of example that the internal microprocessor414 of the core component 402 a is more powerful than the outputcomponent's microprocessor 482 and is capable of providing ahigher-quality source of video to the output component's LCD 472. Amultiplexor within the output component 402 c may be connected to theoutput of both the output component's internal microprocessor 482 andthe core component's microprocessor 414. The output component's internalmicroprocessor 482 or other controller may, for example, control themultiplexor to select either of the two microprocessors as a videosource for the output component 402 c. The multiplexor may be controlledto select the desired video source at or around the time that the outputcomponent's configuration strategy is executed and the outputcomponent's resource usage table is updated, as described above withrespect to FIG. 6.

Although in the example described above a multiplexor is used to selecta video source, it should be appreciated that similar techniques may beused to select any of a variety of resources for use by a component.Furthermore, multiplexors that are capable of selecting from among morethan two resources may also be used. In addition, it should beappreciated that devices other than multiplexors may be used to selectfrom among multiple resources.

It should be appreciated that although various automated techniques aredescribed above for selecting resources to be used by the components 402a–d in various configurations, such selections may be made by a user ofthe components 402 a–d, in whole or in part. For example, the user mayselect which resources are to be used by various components using agraphical user interface that allows the user to make such selection.Some resources may be selected automatically while others are selectedby the user.

It has been generally described that components may be interconnectedwith each other in various ways, and that interconnected components maycommunicate with each other (such as by exchanging feature lists) andshare resources. Examples of particular techniques for interconnectingcomponents to perform the functions described generally above are nowdescribed in more detail.

Referring to FIG. 7A, an interconnected component set 700 is shown inperspective view according to one embodiment of the present invention.The component set 700 includes components 702 a, 702 b, and 702 c. Eachof the components 702 a–c includes two connectors, one on either side ofthe component. For example, component 702 a includes connectors 704 a–b,component 702 b includes connectors 704 c–d, and component 702 cincludes connectors 704 e–f. The positioning of connectors on oppositesides of the components 702 a–c enables the components 702 a–c to beconnected in the linear arrangement shown. It should be appreciated thatadditional components may be added to the component set by connectingthem to an appropriate one or ones of the connectors 704 a–f. It shouldfurther be appreciated that the particular shapes of components 702 a–cand connectors 704 a–f illustrated in FIG. 7A are shown merely forpurposes of example and do not constitute limitations of the presentinvention.

The connectors 704 a–f and any supporting hardware and/or software areexamples of the component interface 304 and connectors 302 a–b shown inFIGS. 3A–3D. The connectors 704 a–f and any supporting hardware and/orsoftware are also examples of devices that may be used to implement theinterdevice communication modules shown in FIGS. 5A–5D.

In one embodiment of the present invention, each of the connectors 704a–f includes one or more of the following:

-   -   (1) a two-wire power bus along which power may flow in either        direction;    -   (2) data connections including one or more of the following:        -   (a) a Universal Serial Bus (USB)        -   (b) an IEEE 1394 bus, sometimes referred to as a FireWire®            bus;        -   (c) standard video input and/or video output connectors;        -   (d) standard audio input and/or audio output connectors; and    -   (3) a signaling bus including one or more of the following:        -   (a) an Inter-IC (I²C) bus for carrying information such as            device IDs, feature lists, and configuration change            detection (CCD) events; and        -   (b) a neighbor wire for carrying the neighbor handshaking            and neighbor acknowledgement signals described above.

For example, referring to FIG. 7B, a schematic diagram is shown of anexample implementation of component 702 a and its connectors 704 a and704 b. As shown in FIG. 7B, in this embodiment connector 704 a is afemale connector and connector 704 b is a male connector. Connectors 704a–b may be used to connect component 702 a to a variety of busses and totransmit a variety of signals to and from component 702 a. Althoughconnectors 704 a–b are described below as including a variety of“ports,” each of which is illustrated in FIG. 7B as a single element, itshould be appreciated that each such port may be implemented using oneor more pins or other connection means as well as correspondingcircuitry, as will be appreciated by those of ordinary skill in the art.

For example, female power port 706 a and corresponding male power port706 b enable connection of component 702 a to a bi-directional power busthat may run through multiple components. Component 702 a includesfemale USB master port 708 a and corresponding male USB slave port 708b, as well as female USB slave port 710 a and corresponding male USBmaster port 710 b, allowing connection of component 702 a to otherUSB-compliant devices. Component 702 a includes female audio out port712 a and corresponding male audio in port 712 b, as well as femaleaudio in port 714 a and corresponding male audio out port 714 b,allowing component 702 a to provide audio output and receive audioinput.

Component 702 a may be connected to a bi-directional IEEE 1394(FireWire) bus running through multiple components by means of femaleIEEE 1394 port 716 a and male IEEE 1394 port 716 b. Component 702 aincludes female video out port 718 a and corresponding male video inport 718 b, as well as female video in port 720 a and corresponding malevideo out port 720 b, allowing component 702 a to provide video outputand receive video input. Ports 722 a–b and 724 a–b are reserved forfuture use.

Component 702 a may be connected to a bi-directional signaling bus bymeans of female signaling port 726 a and corresponding male signalingport 726 b. As described above, the signaling bus may include: (1) anI²C bus for carrying information such as device IDs, feature lists, andconfiguration change detection (CCD) events among components; and (2) aneighbor wire, connecting each component to its neighbor(s), forcarrying the neighbor handshaking and neighbor acknowledgement signalsdescribed above.

It should be appreciated that the connectors 704 a–b shown in FIG. 7B,and their respective ports, are shown merely for purposes of example andare not limitations of the present invention. Rather, a variety ofconnectors providing a variety of ports may be provided by variousembodiments of the present invention. Furthermore, in a particularembodiment, such as that shown in FIG. 7B, in which connectors 704 a–bimplement a particular set of ports in a particular configuration,components need not include all of the ports of each connector. Forexample, a component that is not capable of receiving video input maynot include the video input port 720 a. More generally, each componentmay include any combination of ports.

For example, referring to FIG. 7C, a schematic diagram is shown ofinterconnected components 702 b–c according to one embodiment of thepresent invention. As shown in FIG. 7C, component 702 b and component702 c are coupled by male connector 704 d and female connector 704 e,respectively. Although only two components 702 b–c are shown in FIG. 7C,it should be appreciated that any number of additional components havingsimilarly arranged male and female connectors may be further connectedto components 702 b and 702 c. It should further be appreciated thatcomponents may be connected in any suitable order.

As shown in FIG. 7C, components 702 b and 702 c do not include all portsprovided by the example connector standard shown in FIG. 7B. Forexample, component 702 b includes USB master ports, but does not includeUSB slave ports, indicating that component 702 b may only be used as aUSB master device. Similarly, component 702 c includes USB slave ports,but does not include USB master ports, indicating that component 702 cmay only be used as a USB slave device. In the example shown in FIG. 7C,component 702 b's USB master port is connected to component 702 c's USBslave port, indicating that component 702 b acts as a USB master deviceand component 702 c acts as a USB slave device.

Similarly, component 702 b includes video out ports, but does notinclude video in ports, indicating that component 702 b may providevideo output but may not receive video input. Correspondingly, component702 c includes video input ports but does not include video outputports, indicating that component 702 c may receive video input but notprovide video output. As shown in FIG. 7C, the male video output port ofcomponent 702 b is connected to the female video input port of component702 c, thereby enabling component 702 b to provide video output tocomponent 702 c. Other connections between corresponding ports ofcomponents 702 b and 702 c can readily be seen in FIG. 7C.

It should be appreciated that although each of the components is shownin FIGS. 7A–7C as having a pair of connectors on either side of thecomponent, this particular configuration arrangement of connectors isshown merely for purposes of example and does not constitute alimitation of the present invention. Rather, each component may have anynumber of connectors arranged in any suitable layout. Furthermore, thecomponents 402 a–d may have other connectors that do not conform to theinterconnect standard described above. Such other connectors mayinclude, for example, USB connectors and AC adapter jacks.

In one embodiment of the present invention, connectors constructedaccording to the design of the example standard connectors 704 a–b areused to interconnect components. Use of such connectors in conjunctionwith the techniques described above for selecting particular resourcesto perform particular functions will now be described in more detail.

Assume for purposes of example that the component 702 b shown in FIG. 7Cis the core component 402 a (FIG. 5A) and that he component 702 c shownin FIG. 7C is the output component 402 c (FIG. 5C). Also assume forpurposes of example that the core component 402 a and the outputcomponent 402 c are not yet connected to each other or to any othercomponent. As described above, in one embodiment, each of the components702 b–c has a unique device ID, a feature list, and a resource usagetable. The feature list of the component 702 b may, for example,indicate that the component is capable of providing video output. Thefeature list of the component 702 c may indicate that the component 702c is capable of receiving video input.

Now assume that the components 702 b and 702 c are connected byconnecting the connectors 704 d and 704 e to each other. In response tothe formation of this connection, either or both of the components 702b–c may generate a configuration change detection (CCD) event by, forexample, transmitting a signal indicating a CCD event along the I²C bus(which, as described above, is within the signaling bus). Upon receivingthe CCD event, each of the components 702 b–c broadcasts informationabout itself (such as its device ID and feature list) on the I²C bus.Each of the components 702 b–c is thereby informed of the identity andfeatures of the component(s) to which it is connected.

The components 702 b–c may then perform the neighbor handshakingdescribed above using the neighbor wires contained within the signalingbus. As a result, the component 702 b will ascertain that component 702c is its neighbor, and vice versa.

The components 702 b–c may then execute their configuration strategiesto select resources for use to perform particular functions. Forexample, assume that the configuration strategy of the component 702 cspecifies that the component 702 c may receive video input either froman internal video source (such as the microprocessor 482 shown in FIG.5C) or from an external video source. When the component 702 c executesits configuration strategy, it will decide whether to use its internalvideo source (e.g., the microprocessor 482) or the video source providedby the component 702 b (e.g., the microprocessor 414) as a source ofvideo. As a result of the decision made by executing the configurationstrategy, the component 702 c may, for example, select the chosen videosource using an internal multiplexor, as described above. If thecomponent 702 c chooses the video source provided by component 702 b,the component 702 c will receive a video input signal through the videoinput port of connector 704 e. It should be appreciated that certainresources may only be available for use from neighboring components,while other resources may be available from any component in the samecomponent set.

Now consider an example in which a component requires a resource that isnot supplied internally by the component. For example, now assume thatthe component 702 c includes a display (such as the LCD 472 shown inFIG. 5C) that requires a video source, but that the component 702 c doesnot include an internal video source for the display. Also assume forpurposes of example that the component 702 c includes only a singleconnection (such as the video input port of connector 704 e) throughwhich to receive a video source signal. In one embodiment, upon beingconnected to a video source through the video input port of connector704 e, the component 702 c may select the connected video source for useas a source of video. This technique provides an alternative to the useof configuration strategies for the selection of resources. It should beappreciated that this technique may be used to select any kind ofresource.

The resource usage tables for the components 702 b–c are updated afterthe components 702 b–c select resources (such as by using configurationstrategies or the alternative technique described above). The components702 b–c may then use the selected resources. It should be appreciatedthat the techniques just described may be applied to any number ofcomponents interconnected in a variety of ways.

It should therefore be appreciated that the components 702 a–c (andadditional components) may be interconnected (using connectors 704 a–f)in a variety of configurations to form a variety of computing systems.Components in such computing systems may access resources (such asfunctional modules or sub-components thereof) provided by othercomponents in the computing system. Components may be added to orremoved from an existing configuration to form a different computingsystem. Such ease of reconfiguration may provide a variety ofadvantages, such as reduction in size and cost, reduction or eliminationof data redundancy, and increased ease of use, as described in moredetail above.

In general, the techniques described above may be implemented, forexample, in hardware, software, firmware, or any combination thereof.The techniques described above may be implemented in one or morecomputer programs executing on a processor, a storage medium readable bythe processor (including, for example, volatile and non-volatile memoryand/or storage elements), at least one input device, and at least oneoutput device. Program code may be applied to data entered using theinput device to perform the functions described herein and to generateoutput information. The output information may be provided to one ormore output devices.

Elements and components described herein may be further divided intoadditional components or joined together to form fewer components forperforming the same functions.

Each computer program within the scope of the claims below may beimplemented in any programming language, such as assembly language,machine language, a high-level procedural programming language, or anobject-oriented programming language. The programming language may be acompiled or interpreted programming language.

Each computer program may be implemented in a computer program producttangibly embodied in a machine-readable storage device for execution bya computer processor. Method steps of the invention may be performed bya computer processor executing a program tangibly embodied on acomputer-readable medium to perform functions of the invention byoperating on input and generating output.

It is to be understood that although the invention has been describedabove in terms of particular embodiments, the foregoing embodiments areprovided as illustrative only, and do not limit or define the scope ofthe invention. Other embodiments are also within the scope of thepresent invention, which is defined by the scope of the claims below.Other embodiments that fall within the scope of the following claimsincludes include, but are not limited to, the following.

1. A system comprising: a core device comprising a core computerprocessor, a core memory, a core storage device, a touch screen, andmeans for receiving input from and providing output through the touchscreen in a first mode of operation of the core device; a secondarydisplay device; means for coupling the core device to the secondarydisplay device by inserting at least part of the core device into acavity in the secondary display device; and means for providing inputreceived from the touch screen to the secondary display device in asecond mode of operation of the core device.
 2. The system of claim 1,wherein the core device operates in the first mode of operation when thecore device is not coupled to the secondary display device, and whereinthe core device operates in the second mode of operation when the coredevice is coupled to the secondary display device.
 3. The system ofclaim 1, further comprising: a secondary input device; means forcoupling the core device and the secondary input device to the secondarydisplay device; and means for providing input received from the touchscreen to the secondary display device in a third mode of operation ofthe core device.
 4. The system of claim 3, wherein the core deviceoperates in the third mode of operation when the core device and thesecondary input device are coupled to the secondary display device. 5.The system of claim 1, further comprising means for disabling outputthrough the touch screen when the core device operates in the secondmode of operation.
 6. The system of claim 1, wherein the core devicecomprises a portable computing device.
 7. In a system comprising a coredevice comprising a core computer processor, a core memory, a corestorage device, and a touch screen, a method comprising steps of: (A)receiving input from and providing output through the touch screen in afirst mode of operation; (B) coupling the core device to a secondarydisplay device by inserting at least part of the core device into acavity in the secondary display device; and (C) providing input receivedfrom the touch screen to the secondary display device in a second modeof operation of the core device.
 8. The method of claim 7, furthercomprising steps of: (D) detecting that the core device has been coupledto the secondary display device; and (E) causing the core device toenter the second mode of operation in response to the detectionperformed in step (D).
 9. The method of claim 7, further comprisingsteps of: (D) coupling the core device and a secondary input device tothe secondary display device; and (E) providing input received from thetouch screen to the secondary display device in a third mode ofoperation of the core device.
 10. The method of claim 9, comprisingsteps of: (F) detecting that the core device and the secondary inputdevice have been coupled to the secondary display device; and (G)causing the core device to enter the third mode of operation in responseto the detection performed in step (F).
 11. The method of claim 7,further comprising a step of: (D) disabling the touch screen outputmeans when the core device operates in the second mode of operation. 12.The method of claim 7, wherein the core device comprises a portablecomputing device.
 13. A core device comprising: a core computerprocessor; a core memory; a core storage device; a touch screencomprising touch screen input means and touch screen output means; meansfor receiving input from and providing output through the touch screenin a first mode of operation of the core device; means for entering asecond mode of operation when at least part of the core device isinserted into a cavity in the secondary display device; and means forproviding input received from the touch screen to a secondary displaydevice in the second mode of operation of the core device.
 14. The coredevice of claim 13, further comprising: means for entering the firstmode of operation when the at least part of the core device is notinserted into the cavity in the secondary display device.
 15. The coredevice of claim 13, further comprising: means for coupling the coredevice and a secondary input device to the secondary display device; andmeans for providing input received from the touch screen to thesecondary display device in a third mode of operation of the coredevice.
 16. The core device of claim 15, wherein the means for providinginput comprises means for providing input received from the touch screento the secondary display device only when the core device and thesecondary input device are coupled to the secondary display device. 17.The core device of claim 13, wherein the core device comprises aportable computing device.
 18. In a core device comprising a corecomputer processor, a core memory, a core storage device, and a touchscreen comprising touch screen input means and touch screen outputmeans, a method comprising steps of: (A) receiving input from andproviding output through the touch screen in a first mode of operation;(B) entering a second mode of operation when at least part of the coredevice is inserted into a cavity in the secondary display device; and(C) providing input received from the touch screen to a secondarydisplay device in the second mode of operation of the core device. 19.The method of claim 18, wherein the step (C) comprises steps of: (C) (1)determining whether the core device is coupled to the secondary displaydevice; and (C) (2) providing input received from the touch screen tothe secondary display device only when the core device is determined tobe coupled to the secondary display device.
 20. The method of claim 18,wherein the step (A) comprises steps of: (A) (1) determining whether thecore device is coupled to the secondary display device; and (A) (2)providing output through the touch screen only when the core device isdetermined not to be coupled to the secondary display device.
 21. Themethod of claim 18, wherein the core device comprises a portablecomputing device.
 22. The system of claim 1, wherein the means forproviding input comprises tracking means for tracking movement of anobject on the surface of the touch screen.
 23. The system of claim 22,wherein the tracking means comprises means for moving a cursor displayedon the secondary display device to track the movement of the object onthe surface of the touch screen.
 24. The system of claim 23, wherein theobject comprises a finger.
 25. The method of claim 7, wherein step (C)comprises steps of: (C) (1) receiving the input from the touch screen inthe second mode of operation, the input representing a movement of anobject on the touch screen; (C) (2) providing the input to the secondarydisplay device; and (C) (3) moving a displayed cursor on the secondarydisplay device to indicate the movement of the object.
 26. The method ofclaim 25, wherein the object comprises a finger.
 27. The core device ofclaim 13, wherein the means for providing input comprises: means forreceiving the input from the touch screen in the second mode ofoperation, the input representing a movement of an object on the touchscreen; means for providing the input to the secondary display device;and means for moving a displayed cursor on the secondary display deviceto indicate the movement of the object.
 28. The core device of claim 27,wherein the object comprises a finger.
 29. The method of claim 18,wherein step (C) comprises steps of: (C) (1) receiving the input fromthe touch screen in the second mode of operation, the input representinga movement of an object on the touch screen; (C) (2) providing the inputto the secondary display device; and (C) (3) moving a displayed cursoron the secondary display device to indicate the movement of the object.30. The method of claim 29, wherein the object comprises a finger.